Python 需要关于如何加速web刮板的建议吗

Python 需要关于如何加速web刮板的建议吗,python,web-scraping,request,beautifulsoup,Python,Web Scraping,Request,Beautifulsoup,我对这个还很陌生。我试图从网页中提取数据,但我实现的这个方法似乎有点慢。我使用时间模块来缩小滞后的原因 requests.get(url) 花费了大部分时间(1-5秒) 持续约0.15秒 请求总是这么慢吗?问题是yahoo限制了来自其服务器的请求?目前,从yahoo.com/finance获取单一股票价格大约需要2-5秒,而请求是主要问题,有什么想法吗?问题不在于请求。如果速度慢,可能是网络连接有问题。正如你正确指出的那样,雅虎可能会限制请求。每个网站都有一个robots.txt文件,该文件详

我对这个还很陌生。我试图从网页中提取数据,但我实现的这个方法似乎有点慢。我使用时间模块来缩小滞后的原因

requests.get(url)
花费了大部分时间(1-5秒)

持续约0.15秒


请求总是这么慢吗?问题是yahoo限制了来自其服务器的请求?目前,从yahoo.com/finance获取单一股票价格大约需要2-5秒,而请求是主要问题,有什么想法吗?

问题不在于请求。如果速度慢,可能是网络连接有问题。正如你正确指出的那样,雅虎可能会限制请求。每个网站都有一个robots.txt文件,该文件详细说明了他们关于网络爬虫和自动访问它们的策略。 不管怎么说,这都不会花那么长时间,但我认为这是一个互联网速度问题。尝试从浏览器访问URL,并检查加载所需的时间


GET请求是当您希望从他们那里“获取”网页时,您向网站发送的请求。在浏览器中输入URL并按enter键时使用相同的GET。因此,除非请求获取页面所需的时间与浏览器获取页面所需的时间之间存在显著差异,否则互联网连接速度本身就是一个问题。

这只是Meghdeep所说的话的补充


如果您正在按顺序提取许多URL,您应该尝试将代码重写为异步的。刮取一个页面所需的时间不会改变,但可以异步地一次刮取多个页面。(你可以使用Python Twisted或Tornado框架来实现这一点。或者你可以用Node.js重写你的scraper)

当你使用requests.get(url)时,检索源代码的速度是否与我的浏览器加载和显示数据的速度相同?是的,因为它们都使用get方法,这在所有平台上都是一致的。另外,是的,我现在的网速不太好,稍后我会在更快的连接上尝试。因此,所有程序,所有语言,都使用GET请求与服务器交互?下面的链接解释了GET是如何作为HTTP请求方法的。Http是一种标准协议,因此无论平台如何,它的所有实现都是一致的。好的,我将研究异步刮取。再说一次,我还是新手,不用担心。我们在某个时候都是“新手”。这就是StackOverflow的用途。:)请注意:在执行此操作之前,请务必在Robots.txt中查找特定站点,以便查看最大连接数。假设他将抓取多个雅虎财经页面,他有可能超出允许的连接,雅虎将他拒之门外。(当然是暂时的)嘿,伙计们,我换了一个更快的互联网连接,但现在我遇到了一个错误:警告:root:一些字符无法解码,被替换为替换字符。我想这是一种编码方式,只是做了一点研究,但它不再向我发送html了,因此,当我尝试查找标记时,Beautifulsoup返回一个None类型
soup = BeautifulSoup(data.content)