Python urllib.request.urlopen(url)返回一个空字符串
我正在全天候抓取一个网站,并用Python urllib.request.urlopen(url)返回一个空字符串,python,python-3.x,urllib,Python,Python 3.x,Urllib,我正在全天候抓取一个网站,并用 urllib.request.urlopen(url) 但是,有时(没有明显的原因)结果是一个空字符串。它发生在不同的页面,不同的时间。没有特殊模式-有时只返回空字符串 你知道为什么会这样吗?这是一种可以帮助你的方法 import requests urls = ['http://www.news.com', 'http://www.cnn.com', ] failed_urls = [] for url in urls: r = r
urllib.request.urlopen(url)
但是,有时(没有明显的原因)结果是一个空字符串。它发生在不同的页面,不同的时间。没有特殊模式-有时只返回空字符串
你知道为什么会这样吗?这是一种可以帮助你的方法
import requests
urls = ['http://www.news.com',
'http://www.cnn.com',
]
failed_urls = []
for url in urls:
r = requests.get(url)
# Some of the things you can check
print(url)
print(r.history)
print(r.status_code)
print(r.content)
# One method you could use to keep track of URls that fail
if r.status_code != 200 or not r.content:
failed_urls.append([url, r.status_code, r.content])
这是一种可以帮助您的方法
import requests
urls = ['http://www.news.com',
'http://www.cnn.com',
]
failed_urls = []
for url in urls:
r = requests.get(url)
# Some of the things you can check
print(url)
print(r.history)
print(r.status_code)
print(r.content)
# One method you could use to keep track of URls that fail
if r.status_code != 200 or not r.content:
failed_urls.append([url, r.status_code, r.content])
我们不知道你的代码,我们不知道是哪个网站给了你这个问题,我们将无法重现错误。你需要提供更多的信息。谢谢!我知道,我通常会问是否有原因(例如,一些应该发送的头,可能是超时…我不知道)。有什么“一般”的原因吗?我们不知道你的代码,我们不知道是哪个网站给了你这个问题,我们将无法重现错误。你需要提供更多的信息。谢谢!我知道,我通常会问是否有原因(例如,一些应该发送的头,可能是超时…我不知道)。有什么“一般”的原因吗?虽然这可能有效,但OP询问的是
urllib
模块。虽然这可能有效,但OP询问的是urllib
模块。