首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要关于如何加速网络抓取器的建议

我需要关于如何加速网络抓取器的建议
EN

Stack Overflow用户
提问于 2015-05-08 01:26:10
回答 2查看 1.8K关注 0票数 2

我对此还是个新手。我正在尝试从网页中提取数据,但我实现的这个方法似乎有点慢。我使用了time模块来缩小延迟的原因。

代码语言:javascript
复制
requests.get(url)

花费了大部分时间(1-5秒)

代码语言:javascript
复制
soup = BeautifulSoup(data.content)

始终如一地耗时0.15秒

请求总是这么慢吗?雅虎的问题是限制来自他们服务器的请求吗?现在,从yahoo.com/finance上拉出一个股票价格大约需要2-5秒,请求是主要问题,有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2015-05-08 01:30:14

问题不在于Reqeusts。如果它很慢,这可能是你的网络连接的问题。正如你正确指出的那样,也可能是雅虎对请求进行了速率限制。每个网站都有一个robots.txt文件,其中详细介绍了他们关于网络刮板的策略和对它们的自动访问。不管怎样,这应该不会花这么长时间,但我会把它归因于网速问题。尝试从浏览器访问URL,并检查加载需要多长时间。

GET请求是当你想从网站“获取”网页时,你发送给他们的请求。当您在浏览器中输入URL并按enter时,将使用相同的GET。因此,除非请求获取页面所需的时间与浏览器获取页面所需的时间之间存在显着差异,否则这是互联网连接速度本身的问题。

票数 3
EN

Stack Overflow用户

发布于 2015-05-08 01:34:34

我只是在补充Meghdeep说的..

如果您按顺序拉取多个urls,则应尝试将代码重写为异步。抓取一个页面所花费的时间不会改变,但是异步地你可以一次抓取多个页面。(您可以使用Python Twisted或Tornado框架来实现this..or,也可以使用Node.js重写您的刮板程序)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30107915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档