linux下这么慢? python 的requests和urllib2在 Linux下抓取网页怎么这么慢!

发布于 2021-11-19 02:09:10 字数 505 浏览 930 评论 11

同样的python程序,用urllib2 在win xp和linux下抓取指定网页。发现两个系统下所用时间差别好大。

在winodows xp一下子就打印出抓取的内容了。为什么在ubuntu 试了一遍,发现时间要很久才返回?

用requests 也是同样的效果。本人在ubuntu下用chrome 30 打开同样网页,那速度可是飞快的。


下面是requests 的测试代码:


import requests
r = requests.get('http://www.soso.com/q?pid=s.idx&cid=s.idx.se&w=ubuntu-12.04-server-i386.iso+site%3Apan.baidu.com')
print r.text


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

野心澎湃 2021-11-24 06:49:47

人品!

做个少女永远怀春 2021-11-24 06:42:31

把域名配置到hosts中。

秋意浓 2021-11-24 03:39:14

用wireshark分析发现,有1/8左右的时间是花在DNS查询上。

居里长安 2021-11-24 02:07:20

你用wireshark抓包分析一下,就知道DNS请求和WEB请求分别占用多少时间了

裸钻 2021-11-23 23:30:30

www.soso.com换成IP地址看看

Linux系统默认不配置DNS缓存的,而chrome则自带DNS缓存

蓝颜夕 2021-11-23 19:37:17

www.soso.com换成IP地址看看

Linux系统默认不配置DNS缓存的,而chrome则自带DNS缓存

悸初 2021-11-23 18:24:57

www.soso.com换成IP地址看看

Linux系统默认不配置DNS缓存的,而chrome则自带DNS缓存

等你爱我 2021-11-22 23:50:31

python 的 httpcache 库,对此问题可能有帮助。

https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers 这篇文章 解释了http cache的原理。而浏览器一般都具备http cache机制。对于一个应用会话内的多个请求可能有cache效果。

眉黛浅 2021-11-22 12:51:22

应该不是的,因为同样在这个ubuntu下用chrome访问同样的url,速度就很快。

好听的两个字的网名 2021-11-21 03:49:46

是不是你dns解析的问题。dns解析比较慢

天涯离梦残月幽梦 2021-11-20 17:57:45

soso.com  和 IP 添加到/etc/hosts 后,速度提升不大。

后来又测试了抓取 baidu网页,进行对比。发现即使没在hosts中添加baidu,即使在host中添加了 soso, 抓取结果返回的速度,还是百度快N倍。soso依然很慢。

测试代码:

#import requests
#from httpcache import CachingHTTPAdapter
#s = requests.Session()
#s.mount('http://', CachingHTTPAdapter(capacity=100))

#r = requests.get('http://soso.com/q?pid=s.idx&cid=s.idx.se&w=ubuntu-12.04-server-i386.iso+site%3Apan.baidu.com')
#print r.text

import httplib2
headers = {
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "Accept-Charset": "UTF-8;q=0.5",
      "Accept-Encoding": "gzip,deflate,sdch",
      "Accept-Language": "zh-CN,zh;q=0.8",
      "Cache-Control": "max-age=0",
      "Connection": "keep-alive",
      "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91   Safari/534.30",
}
h = httplib2.Http(".cache")
resp, content = h.request("http://pan.baidu.com/share/link?shareid=3910200743&uk=2651292192",headers=headers)
print resp,'nnnnn',content
resp, content = h.request("http://soso.com/q?pid=s.idx&cid=s.idx.se&w=ubuntu-12.04*.iso+site%3Apan.baidu.com",headers=headers)
print resp,'nnnnn',content.decode('gbk')

@jobet   @Mallon

但有个矛盾:chrome30浏览器中 就是感觉两个网页都很快。。。

大家可以自己体验一下这个效果

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文