(Python3.x)Web抓取代码需要一个多小时才能加载

(Python3.x)Web抓取代码需要一个多小时才能加载,python,python-3.x,Python,Python 3.x,我的浏览器中的网页需要几秒钟才能加载,但这个程序在运行了将近一个小时后仍未完成 import urllib baseurl = 'https://www.google.com/?finance?q=' stocksName=['dow','apple','cat'] i=0 while i<len(stocksName): fileurl = baseurl + stocksName[i] file = urllib.request.urlopen(fileurl)

我的浏览器中的网页需要几秒钟才能加载,但这个程序在运行了将近一个小时后仍未完成

import urllib

baseurl = 'https://www.google.com/?finance?q='
stocksName=['dow','apple','cat']
i=0
while i<len(stocksName):
    fileurl = baseurl + stocksName[i]
    file = urllib.request.urlopen(fileurl)
    text = file.read()
    print(text)
    i+=1
导入urllib
baseurl=https://www.google.com/?finance?q='
stocksName=['dow'、'apple'、'cat']
i=0
虽然我你有一个输入错误(
fullurl
),我猜你的
while
循环只有在脚本超时时才会结束

file = urllib.request.urlopen(fullurl)


在我看来,当
fileurl=baseurl+stocksName[i]
被添加到一起时,我们得到了
https://www.google.com/finance?q=DOW

这实际上是整个道琼斯指数搜索的财经网站(3629家公司的搜索结果)

可能将
stocksName=['NYSE:DOW']
添加到您的列表中,然后删除
'DOW'

这可能是问题的原因

如果这不能解决问题,请尝试针对特定页面:

import urllib

baseurl = 'https://www.google.com/finance?cid='
stocksName=['665819','22144','5736']
i=0
while i<len(stocksName):
    fileurl = baseurl + stocksName[i]
    file = urllib.request.urlopen(fileurl)
    text = file.read()
    print(text)
    i+=1
导入urllib
baseurl=https://www.google.com/finance?cid='
stocksName=['665819'、'22144'、'5736']
i=0

而问题可能与网络有关。可能您被阻止访问服务器端的站点,或者其他一些问题导致您的urllib请求无法成功完成。(阻止了你的用户代理)

请尝试使用超时功能,因为默认情况下,urllib.request将永远等待完成请求

file = urllib.request.urlopen(fileurl, timeout=5)
您可能会发现您的请求超时了。对根本原因的另一种猜测是将https与过时的urllib结合使用。尝试使用“请求”库

请求示例:

r = requests.get('https://api.github.com/user')
print(r.status_code)

抱歉,在我的另一台电脑上重新编写了代码(因为我的笔记本电脑坏了),实际代码不是打字错误。它打印了所有页面的html文件,只花了一个多小时就完成了。把它拿出来,对陶氏来说同样的问题,你的目标是什么?或者整个道琼斯指数的搜索?我把道琼斯指数去掉了,同样的问题,但是当我把它打印出来(文本[0:100])的时候,它在一段合理的时间内完成了,所以我认为这是打印功能的问题,你到底想从这张废纸上得到什么?我运行了你的代码,花了大约2分钟完成,并给了我所有的html信息。
r = requests.get('https://api.github.com/user')
print(r.status_code)