gpt4 book ai didi

python - 使用Python中的 Mechanize 库在网页上下载具有多个扩展名的文件

转载 作者:行者123 更新时间:2023-12-04 16:22:49 27 4
gpt4 key购买 nike

我关于 Stack Overflow 的第一个问题!

我正在尝试下载招聘网站的简历。我找到了指向下载的链接,但这些下载的结尾是“.php”,因此我不知道要下载的文件的扩展名(.doc、.docx、.pdf)链接的相关最后一部分如下:("~/resumedownload.php?f=WFeilbBZWg==")

我正在用 Mechanize 登录网站。我已经使用 mechanize 登录网站,这是我下载文件的操作:

filename = br.retrieve(link.get('href'),
os.path.expanduser("~/Desktop/Job Postings/Hirist/" + str(i) +
".pdf"))[0]

,但这只会带回 .pdf 文件并损坏其余文件。文件名变量是一个 .php 文件。

有什么建议?

最佳答案

Browser.retrieve()返回一个元组,其中包含写入文件的文件名和来自远程服务器的 header 。然后您可以使用 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))

关于python - 使用Python中的 Mechanize 库在网页上下载具有多个扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31585633/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com