2017-06-18 83 views
1

現在、私はPythonとBeautiful Soupを使用してWebスクラップを学習しています。私は、私はCSSの擬似要素からコンテンツを取得する方法を知りたいウェブページはCSS擬似要素BeautifulSoup4を使用してCSS3擬似要素からコンテンツを取得

<span class="bb_rating bble_50"> 
    ::before 
    ::after 
</span> 

bble_50::after { 
    content: "\e00b\e00b\e00b\e00b\e00b"; 
} 

enter image description here

内の星の評価を持つされているタスクを与えられたのですか? ヘルプが必要です。ありがとう

+0

旅行アドバイザーのようです。そうではありませんか?どのようにページソースを最初に取得するのかを示すことができますか?ありがとう。 – alecxe

+0

はい、それは旅行アドバイザーからのものですが、私のメンターはちょうどいくつかのCSSを変更したので、どこからでもコピーを貼り付けることはできません。 :) – raju

答えて

1

実際にここでCSSを解析する必要はありません。ちょうどクラス名を評価にマップします

class_to_rating = { 
    "bble_45": 4.5, 
    "bble_50": 5 
} 
elm = soup.select_one(".bb_rating") 
rating_class = next(value for value in elm["class"] if value.startswith("bble_")) 

print(class_to_rating.get(rating_class, "Unknown rating")) 
+0

いいですね。ありがとう。しかし、私が実際に疑似セレクタを得る方法はありますか? Node.jsを使用するとjavacriptを使って取得できます – raju

+0

@rajuまあ、['tinycss'](https://tinycss.readthedocs.io/en/latest/)のようなCSSパーサーがあります。常に正規表現があります。そして、 'セレニウム'が選択肢であれば、 '' value_of_css_property'を介して 'content' CSSプロパティに入るのを助けるかもしれません(http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote .webelement.WebElement.value_of_css_property).. – alecxe

+0

ありがとうございました。それは役に立ちます。また、 'partial_entry'クラスの中で 'More'をクリックした後、どのようにコンテンツを取得することができますか?私は別の質問をするべきですか? – raju

関連する問題