使用python3.4从Google Patents下载文件

2024-06-10 06:46:23 发布

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

我想下载(使用Python3.4)谷歌专利批量下载页面上的所有(.zip)文件http://www.google.com/googlebooks/uspto-patents-grants-text.html

(我知道这相当于大量的数据。)我想将所有文件保存在目录[year]中,因此1976年所有(每周)文件的1976。我想将它们保存到Python脚本所在的目录中。在

我已经尝试过使用urllib.request包,但是我可以更深入地了解http文本,而不是如何“点击”文件来下载它。在

import urllib.request

url = 'http://www.google.com/googlebooks/uspto-patents-grants-text.html'
savename = 'google_patent_urltext'
urllib.request.urlretrieve(url, savename )

非常感谢你的帮助。在


Tags: 文件text目录comhttpurlrequesthtml
2条回答

据我所知,你寻求一个命令,将模拟左击文件,并自动下载。如果是这样,你可以用硒。 比如:

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
profile = FirefoxProfile ()
profile.set_preference("browser.download.folderList",2)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.dir", 'D:\\') #choose folder to download to
profile.set_preference("browser.helperApps.neverAsk.saveToDisk",'application/octet-stream')
driver = webdriver.Firefox(firefox_profile=profile)
driver.get('https://www.google.com/googlebooks/uspto-patents-grants-text.html#2015')
filename = driver.find_element_by_xpath('//a[contains(text(),"ipg150106.zip")]') #use loop to list all zip files
filename.click()

已更新!'应使用application/octet stream的zip mime类型,而不是“application/zip”。现在它应该可以工作了:)

你正在下载的html是链接页面。你需要解析html来找到所有的下载链接。你可以用一个像靓汤一样的图书馆来做这个。在

但是,该页面的结构非常规则,因此您可以使用正则表达式获取所有下载链接:

import re

html = urllib.request.urlopen(url).read()
links = re.findall('<a href="(.*)">', html)

相关问题 更多 >