前提
※初学者のためおかしな表現等ありましたら、恐れ入りますがご指摘いただけますと幸いです。
pythonでスクレイピングを試みています。
BeautifulSoupで、CSSセレクタで要素する形を取ったのですが、上手く取得できず困っています。
実現したいこと
以下サイト内の各求人内の各項目を取得したいです。
https://www.baitorupro.com
具体的に試しているのは以下求人です。
https://www.baitorupro.com/care/detail/77886521/
例えば、以下のような情報の取得を実現したい。
募集職種項目から「介護職員・ヘルパー」
雇用形態項目から「アルバイト・パート」など。
発生している問題・エラーメッセージ
[] ※戻り値が何もなく困っています※
該当のソースコード
python
1import requests 2from bs4 import BeautifulSoup 3 4URL = "https://www.baitorupro.com/care/detail/77886521/" 5 6res = requests.get(URL) 7soup = BeautifulSoup(res.text,"html.parser") 8 9print(soup.find_all("div.div01.at3194-jobType>div.div02>p"))
試したこと
print(soup5.select(".div01>div.div02>p")[2])
のように指定範囲を広げ、取得結果番号?を指定する方法も取りました。
ただ、求人ごとに求人内の項目数が異なるため、番号を一律に指定することができませんでした。
例
https://www.baitorupro.com/care/detail/82370992/
当求人の場合は、「募集職種」と「雇用形態」の間に「働く場所・業態」の情報が存在。指定した番号がズレる。
そのため、対象項目をピンポイントで取得するためには、より具体的なCSSセレクタの指定が必要と考え、上記コードを試みました。
ただ、上記例で言うとclass名「at3194-jobType」が対象項目をピンポイントで指定できる要素と考えているのですが、当該class名を条件に含めると、ことごとく[]で返ってきてしまいます。
※なお、Chromeの検証ツールのCSSセレクターで取得すると「at3194-jobType」が含まれていますが、requestsで取得したhtml上では当該class名が含まれず。。ただ、それ以外にピンポイントで指定できる要素もなく。お手上げの状況です。
お力をお貸しいただけますと幸いです。どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/17 09:20