python - 使用 Python 3.4 从 Google Patents 下载文件

标签 python python-3.x download web-scraping

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

(我知道这相当于大量数据。)我想将所有文件在目录中保存一年[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 )

非常感谢您的帮助。

最佳答案

据我了解,您正在寻找一个命令来模拟文件上的左键单击并自动下载它。如果是这样,您可以使用 Selenium。 像这样:

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”。现在应该可以了:)

关于python - 使用 Python 3.4 从 Google Patents 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30323081/

相关文章:

python - 更新 pandas 数据框并更新值(如果数据存在)

python - IPython - 在导入的文件中设置断点

python - 对 groupby pandas 数据框的算术运算

python - 使同步 Flask 异步 - Flask 实例

python-3.x - 在 PyPDF2 PdfFileReader 中使用 GCS 路径

android - 在 Android 中下载大文件

python - Turtle Onkey - 输入键

php - Laravel 5.1 中的数组到 CSV 文件下载

javascript - 服务器重定向到下载文件后捕获重新加载/结束请求事件

python - 正则表达式:如何匹配语言的字符集(有一些异常(exception))?