インターネットからPDFをダウンロードしようとしています。インターネットからPDFを取得するために必要な一連のリンクがあります。
私はこのコードブロックを持っています:
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
url = 'http://webapps.rrc.texas.gov/CMPL/viewPdfReportFormAction.do?method=cmplG1FormPdf&packetSummaryId=2928'
opts = Options()
opts.headless = True
assert opts.headless # Operating in headless mode
browser_detail = Firefox(options=opts)
browser_detail.get(url)
print(browser_detail.page_source)
with open('temp/metadata.pdf', 'wb') as fd:
fd.write(browser_detail.page_source)
browser_detail.close()
私もリクエストを試しました。同じ応答:
import requests
url = 'http://webapps.rrc.texas.gov/CMPL/viewPdfReportFormAction.do?method=cmplG1FormPdf&packetSummaryId=2928'
r = requests.get(url, stream=True)
with open('temp/metadata.pdf', 'wb') as fd:
for chunk in r.iter_content(2000):
fd.write(chunk)
問題は、URLをブラウザに入力すると、PDFが表示されることですが、このコードに入力すると、page_sourceはhtmlになります。これにより、転送またはサーバー側の処理が関係していると思います。
PDFを取得するにはどうすればよいですか?ありがとう!
を使用してPDFファイルをプルダウンすることができましたrequests
。
このページは適切なUser-Agent
ものを探しているので、ChromeMacOSに設定しました。
h = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" }
r = requests.get(url, stream=True, headers=h)
そしてそれはうまくいった。
tmp/project/1> file metadata.pdf
metadata.pdf: PDF document, version 1.4
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加