実現したいこと
求人サイトから企業名、企業の住所、電話番号を取得するコードを作成しています
前提
その際、もし求人が掲載期間終了によりURLを取得できなかった場合、Noneと出力したいのですが、うまくいきません。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- HTTPError Traceback (most recent call last) Cell In[37], line 27 21 #job_info_url = cp_page.get('href') 22 23 24 25 #これで住所取得できた(あとは、複数のコードをfor文で回して取得すればOK) 26 page_r = requests.get(cp_page_url) ---> 27 page_r.raise_for_status() 28 page_soup = BeautifulSoup(page_r.content, 'lxml') 31 addresses = page_soup.select('div.bl_card2_table.bl_card2_table__wide th:-soup-contains("住所")') File ~/anaconda3/lib/python3.10/site-packages/requests/models.py:1021, in Response.raise_for_status(self) 1016 http_error_msg = ( 1017 f"{self.status_code} Server Error: {reason} for url: {self.url}" 1018 ) 1020 if http_error_msg: -> 1021 raise HTTPError(http_error_msg, response=self) HTTPError: 404 Client Error: Not Found for url: https://atsumaru.jp/area/detail?kno=X109214&said=7&shn=980&vol=00001
該当のソースコード
#HTMLを読み込む with open('company_list.html', 'r') as f: html = f.read() #HTMLを解析する soup = BeautifulSoup(html, 'lxml') #style="visibility:hidden"を除いた所以降のaタグの数を出力したい cp_pages = soup.select('div#jobLists div#jobList.jobList > div h2 a') print(len(cp_pages)) for cp_page in cp_pages: print(cp_page.text)#get cp_name #詳細ページにアクセス job_info_url = cp_page.get('href') if cp_pages else None cp_page_url = 'https://atsumaru.jp' + job_info_url#求人詳細ページのurl取得 #job_info_url = cp_page.get('href') page_r = requests.get(cp_page_url) page_r.raise_for_status() page_soup = BeautifulSoup(page_r.content, 'lxml') addresses = page_soup.select('div.bl_card2_table.bl_card2_table__wide th:-soup-contains("住所")') addresses = page_soup.select('tr:has(th:-soup-contains("住所")) td p:first-child') for address in addresses: print(address.text)
試したこと
・job_info_url = cp_page.get('href') if cp_pages else Noneをjob_info_url = cp_page.get('href') if cp_pages else print('None')とした:同じエラー
・job_info_url = cp_page.get('href') if cp_pages else Noneを
python
1if cp_pages: 2 cp_page.get('href') 3 4else: 5 print('None')
としたところ、同じエラー。
補足情報(FW/ツールのバージョンなど)
Pythonのバージョン:3.10.9
使用PC:Intel MacBook
バージョン:macOS Monterey Version 12.4
実装環境:Jupyter Lab
Chromeのバージョン:112.0.5615.137
ChromeDriverのバージョン:112.0.5615.49
selenium 4.9.0

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。