windows 10
python 3.12.3
selenium 4.21.0
webdriver-manager 4.0.1
requests 2.32.2
beautifulsoup4 4.12.3
です。
クレジットの明細のPDFをスクレイピングでダウンロードしようとしてます。
なんとかダウンロードまでこぎ着け、指定のフォルダにPDFを保存できるようにはなったのですが、PDFの中身が空なのです。
PDFをダウンロードするところはボタンになってまして、押したら即ダウンロード、みたいな感じになってます。
ダウンロードするところまでは無事動いているので、ダウンロードして書き込むところのコードをのせます。
python
1for filename, url in zip(d_list_filename, d_list_url): 2 sleep(5) 3 driver.get(url) 4 pdf_url = driver.find_element(By.CSS_SELECTOR, "a#j_idt834").get_attribute("href") 5 6 7 # r2 = requests.get(url) 8 # r2.raise_for_status() 9 # soup2 = BeautifulSoup(r2.content, "lxml") 10 # pdf_url = pdf_base_url + soup2.select_one("a#j_idt834").get("href") 11 12 13 print(filename, pdf_url) 14 sleep(3) 15 pdf_file = requests.get(pdf_url) 16 pdf_file.raise_for_status() 17 18 pdf_path = Path(f"{meisai_path}\{filename}meisai.pdf") 19 20 with open(pdf_path, mode="wb") as f: 21 f.write(pdf_file.content)
コメントアウトしてるところは、requestsでとりにいったらエラーが出た部分です。
なのでseleniumで取りに行ったらできました。
認証とかに問題があるんでしょうか??
headersに認証の何か設定をして、
requests.get(pdf_url, headers=headers)みたいにすべきなのでしょうか??
宜しくお願いします。

回答1件
あなたの回答
tips
プレビュー