Python 抓取 urllib2 HTTP 错误

问题描述 投票:0回答:1

我正在尝试抓取一个网站,但我的代码仅在我打开该网站然后刷新它时才有效。我尝试了多种方法,但不断出现以下两个错误: 第一个:ValueError:“HTTPError:HTTP错误416:请求的范围无法满足”

urlslist = open("list_urls.txt").read()
urlslist = urlslist.split("\n")
for urlslist in urlslist:

htmltext = urllib2.urlopen("www..."+ urlslist)
data = json.load(htmltext)

我也尝试过使用一些标头等,但收到错误“ValueError:无法解码 JSON 对象”:

req = urllib2.Request('https://www....)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')

htmltext = urllib2.urlopen(req)
data = json.load(htmltext)

我很困惑,有什么帮助吗?

python web-scraping urllib2 http-error
1个回答
-1
投票

当您请求网址时,您还需要包含“http(s)://”部分。假设您的文本文件仅包含网址的“name.com”部分(例如,您的文本文件包含 google.com,而不是 https://www.google.com),这就是您需要的代码:

htmltext = urllib2.urlopen("https://www." + urlslist)

如果网址是stubhub.com(正如您在评论中提到的),则不需要“s”。而是这样的:

htmltext = urllib2.urlopen("http://www." + urlslist)

json 错误可能只是由于没有要加载的 json 文件所致。您需要查看开发人员面板并确保引入了 json 格式文件。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.