嗨,我想通过Python、Julia或任何语言脚本下载以下网站(https://www.nationalgrid.com/uk/electricity/market-and-operational-data/data-explorer)上发布的所有文件。它曾经是一个http的网站,BeautifulSoup运行良好;现在我的代码上的https网站已经不工作了。在
我想要下载的所有文件都在一个'a'标记中,并且属于“download”类。因此,代码中不起作用的行如下:
fileDownloader.retrieve(document_url, "forecasted-demand-files/"+document_name)
这将引发以下错误:
^{pr2}$在网上做了一些研究之后,我没有找到任何关于如何在https网站上删除文档的信息,有人能给我个建议吗?在
提前感谢您的回答!在
朱利安
在
import requests
import urllib
import re
from bs4 import BeautifulSoup
page = requests.get("https://www.nationalgrid.com/uk/electricity/market-and-
operational-data/data-explorer")
soup = BeautifulSoup(page.content, 'html.parser')
fileDownloader = urllib.URLopener()
mainLocation = "https://www.nationalgrid.com"
for document in soup.find_all('a', class_='download'):
document_name = document["title"]
document_url = mainLocation+document["href"]
fileDownloader.retrieve(document_url, "files/"+document_name)
这不是一个https问题,只是你试图抓取的页面有一些文件访问限制。当您期望异常时,最好处理它们。在这种情况下,所有的文件链接都可能断开或无法访问。在
尝试按如下方式处理异常:
这个问题的问题是,为了满足请求,您应该将代理作为头传递。在
我不知道如何使用
urllib
来实现这一点,但是由于您已经在使用requests
(它更人性化),您可以使用以下代码来实现这一点:只需要一个小黑客从链接中检索文件名。在
相关问题 更多 >
编程相关推荐