关于Stack Overflow的第一个问题!
我正在尝试下载招聘网站的简历。我找到了导致下载的链接,但是这些下载有一个'.php'结尾,因此我不知道要下载的文件的扩展名(.doc,.docx,.pdf)链接的相关最后一部分看起来像这样:(“〜/ resumedownload.php?f = WFeilbBZWg ==”)
我正在使用mechanize登录网站。我已经使用mechanize登录网站,这就是我下载文件的方法:
A
,但这只会带回.pdf文件并破坏其余文件。 filename变量是.php文件。
有什么建议吗?
答案 0 :(得分:0)
Browser.retrieve()
返回一个元组,该文件由写入文件的文件名和远程服务器的标头组成。然后,您可以使用Content-Type
标头来确定文件的MIME类型,并使用mimetypes模块来获取文件的适当扩展名。最后,重命名该文件。
import mechanize
import shutil
import os.path
import mimetypes
#url = 'http://stackoverflow.com'
url = 'http://heriverde.nimoz.pl/wp-content/uploads/pdf-sample.pdf'
br = mechanize.Browser()
filename, headers = br.retrieve(url)
dest_dir = os.path.expanduser('~/Desktop/Job Postings/Hirist/')
# Content-Type may include encoding, e.g. text/html; charset=utf-8
content_type = headers.get('Content-Type', '').split(';')[0]
extension = mimetypes.guess_extension(content_type)
if not extension:
extension = '.dunno'
# `i` is assumed to be a counter
dest_filename = '{}{}'.format(i, extension)
shutil.move(filename, os.path.join(dest_dir, dest_filename))