使用python下载pdf

2024-04-19 23:10:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着从网上下载一份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就会出现,但是当我把它放到这个代码中时,页面的源代码是html。这使我认为这涉及到转发或服务器端处理。你知道吗

我怎样才能把PDF写下来? 谢谢!你知道吗


Tags: 代码fromimportbrowserurlpdfseleniumfirefox
2条回答
with open('temp/metadata.pdf', 'wb') as fd:
    fd.write(r.content)

我可以使用requests下拉PDF文件。你知道吗

这个页面正在寻找一个合适的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

相关问题 更多 >