urllib.request.urlopen(url)返回一个空字符串

时间:2017-08-23 15:16:29

标签: python python-3.x urllib

我正在全天候抓取网站并使用

下载网页
urllib.request.urlopen(url)

但是,有时(没有明显原因)结果是空字符串。它发生在不同的页面,不同的时间。没有特殊模式 - 有时只返回一个空字符串。

为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:2)

这是一种可以帮助你的方法。

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])