Python从(non.pdf)u下载pdf

2024-09-24 12:23:26 发布

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

我试图从一个有登录名的站点下载大约20个左右的PDF文件。这是我到目前为止所拥有的,但它无法下载任何有效的PDF(即它们都已损坏)。我对python也是新手。在

import mechanize
import urllib2

def download_file(download_url):
    response = urllib2.urlopen(download_url)
    print response.geturl() 
    print response.read()
    file = open("document.pdf", 'wb')
    file.write(response.read())
    file.close()

brwser = mechanize.Browser()
brwser.addheaders = [('User-agent', 'Firefox')]
response = brwser.open(url)

brwser.select_form(nr = 0)
brwser.form['UserName'] = 'username'
brwser.form['Password'] = 'password'
nextpage = brwser.submit()

# Navigate to the page I want

for link in brwser.links():
    if link.text == 'Some pdf':
        request = brwser.follow_link(link)
        download_file(link.url)

我不知道该怎么办。pdf的url如下所示

https://example.com/something/source2.aspx?id=e9a9bfdc-7d97-e411-9e03-76439cf4d30e

还有响应。读取()如下:

^{pr2}$

那么如何下载这些文件呢?在


Tags: 文件importformurlreadpdfresponsedownload
1条回答
网友
1楼 · 发布于 2024-09-24 12:23:26

您可以考虑使用Selenium,它可能更适合与站点交互(并不是说mechanize不是一个优秀的工具)。关于如何实现这一点,有一些不错的文档(例如herehere):普遍接受的方法是调整Firefox,使其保存文件而不是试图打开它们,然后访问每个链接。在

您还可能会发现,当您解析这些链接时,最终会出现完全不同的结果,这取决于PDF在哪里以及它们是如何生成的。您也可以使用类似this one的方法来提取链接。在

相关问题 更多 >