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
模块。