実現したいこと
競馬ラボというサイトの https://www.keibalab.jp/db/race/202412150811/course.html
このページの 『▶2歳オープン (国) 牡・牝 (指) 馬齢』という部分の文字を取得したいです。
発生している問題・分からないこと
競馬ラボというサイトの https://www.keibalab.jp/db/race/202412150811/course.html
このページの 『▶2歳オープン (国) 牡・牝 (指) 馬齢』 という部分の文字を取得したいのですが、疑似要素の処理の仕方がわかりません。一応自分でも調べてみたのですが、いろいろなやり方が断片的に見つかってしまい、混乱してしまいました。
BeautifulSoupとrequestsで今までスクレイピングをやってきていて、かつuser-Agentの指定の仕方もrequestsでの方法しかわからないので、できるだけこの2つを使って(必要であればここに何か別のモジュールやライブラリなどを足して)疑似要素を処理して『』を取得する方法を教えてほしいです。まだまだ初心者でわからないことが多いのでできればシンプルな方法な方がうれしいです。注文が多くなってしまい申し訳ないのですが...
下記には一応自分でも試したけどエラーになってしまったコードを1つ載せておきます。
それのダメなところを直してくれるのもありがたいです。
自分が調べて試した中では、下記URLのコードを参考にしてXpathでなんとかするのが楽そうなのかなぁと全然わかってないですが思いました。
https://machine-learning-skill-up.com/knowledge/python%E3%81%A8beautifulsoup%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fxpath%E5%87%A6%E7%90%86%E3%81%AE%E5%AE%9F%E4%BE%8B%E8%A7%A3%E8%AA%AC
該当のソースコード
python
1import requests 2from bs4 import BeautifulSoup 3from lxml import html 4 5load_url = "https://www.keibalab.jp/db/race/202412150811/course.html" 6 7headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3"} 8Response = requests.get(load_url, headers=headers) 9web_content = Response.content 10 11tree = html.fromstring(web_content) 12 13element = tree.xpath("/html/body/div[2]/div[2]/div/article/div/section/div/div/div[2]/div[1]/div[1]/div[1]/div[2]/ul/li[1]/text()") 14 15print(element) 16 17#AttributeError: 'Response' object has no attribute 'fromstring'
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
#AttributeError: 'Response' object has no attribute 'fromstring'
補足
競馬ラボはUser-Agentを指定しないとスクレイピングできなかったです。
回答1件
あなたの回答
tips
プレビュー