前提・実現したいこと
Pythonを用いてヤフオク!の送料を取得したいと思っています。
つい最近プログラミングを学び始めたため、言葉の節々におかしい点があるかもしれませんがご容赦ください。
#【HTML】
<dd class="BidModal__postageDetail" id="method0"> <div class="BidModal__postageDetail" style="background-color: white;">"2,980円"
<span class="BidModal__postageTax">(税込み)</span>
こちらは対象ページの送料を含むHTMLの一部になります。
ページURL:
[https://page.auctions.yahoo.co.jp/jp/auction/u290078820]
CSSセレクタを用いて、送料をスクレイピングしようと思ったのですが、それがかないません。
発生している問題・エラーメッセージ
【実行結果】 IndexError: list index out of range
該当のソースコード
Souryou
1import requests 2import lxml.html 3 4URL = "https://page.auctions.yahoo.co.jp/jp/auction/u290078820" 5response = requests.get(URL) 6HTML = lxml.html.fromstring(response.text) 7SOURYOU = HTML.cssselect('#method0 > div')[0].text.strip() 8print(SOURYOU) 9
試したこと
同ページ内の即決価格"4,350円"もほぼ同じ構造でデータが収納されていたので、試しに、下記のコードを実行したところ"4,350円"は取得することができました。
【即決価格を含むHTML】
<dl class="Price__body Price__body--none"> <dt class="Price__title">即決価格<\dt>
<dd class="Price__value">"
4,350円"
<span class="Price__tax">(税 0 円)<\span>
<\dd>
SokketsuKakaku
1import requests 2import lxml.html 3 4URL = "https://page.auctions.yahoo.co.jp/jp/auction/u290078820" 5response = requests.get(URL) 6HTML = lxml.html.fromstring(response.text) 7 8KAKAKU = HTML.cssselect('#l-sub > div.ProductInformation > ul > li.ProductInformation__item.js-stickyNavigation-start > div > dl > dd.Price__value')[0].text.strip() 9 10print(KAKAKU)
送料と即決価格で構造がほとんど同じのため、なぜ即決価格の"4,350円"が取得でき、送料の"2,980円"だけが取得できないのかがどうしてもわかりませんでした。
お力添えよろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
Python 3.8.0
Microsoft Windows 10
バージョン 1903
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。