2017-03-21 6 views
-4

xpathを使ってHTMLページから情報の一部を抽出するにはいくつかの助けが必要です!私は、レビューの評価 exempleを抽出したい:これは私が「5のうち、4.9」表示をしたい、このコードからHTMLコードPythonのscrapでXpathを使って情報を抽出する方法

<div id="BVRRRatingOverall_Rating_Summary_1" class="BVRRRating BVRRRatingNormal BVRRRatingOverall"> 
<div class="BVRRLabel BVRRRatingNormalLabel">Overall rating&nbsp;</div> 
<div class="BVRRRatingNormalImage"><img src="/4_9/5/rating.gif" class="BVImgOrSprite" alt="4.9 out of 5" title="4.9 out of 5" width="85" height="16"></div> 
<span itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating" class="BVRRRatingNormalOutOf"> 
     <span itemprop="ratingValue" class="BVRRNumber BVRRRatingNumber">4.9</span> 
     <span class="BVRRSeparatorText">out of </span> 
     <span itemprop="bestRating" class="BVRRNumber BVRRRatingRangeNumber">5</span> 
     <meta itemprop="reviewCount" content="23"> 
    </span> 
</div> 

であるか、「4.9」が含まれている3つの変数、「外」、「5」

私はこれを使用するが、それはうまくいきませんでした:

response.xpath('//div[@class="BVRRRatingNormalImage"]/img/@alt').extract() 

任意のヘルプ?

+3

のdivは、クラス「BVRRRatingNormalImage」を持っていない文字列として一つだけの要素を与える

response.xpath('//span[@itemprop="ratingValue"]/text()').extract_first() 

リスト形式で3つの要素を提供します。 – betseyb

+0

申し訳ありませんbetseyb!私はちょうど下のHTMLコードを入れました! –

+0

このhtmlの例では、このxpath式は '// img [@ class =" BVImgOrSprite "]/@ alt'で動作するはずです。 サイトリンクやコードの例がないと、それがうまくいくかどうかわかりません。 – vold

答えて

0
response.xpath('//span[@itemprop="aggregateRating"]/span/text()').extract() 

それは「4.9」

+0

お返事ありがとうございますpythonlearner!私はそれが働いたが、最初に何も表示されていない2番目のパスを試しました –

+0

ページは、働いていれば、@ghiles bouzembrakを更新することがありますあなたは答えを受け入れることができます – pythonlearner

+0

回答受付中!ありがとうございました –

関連する問題