python 爬虫速度比打开网页慢?

url="https://www.zhihu.com/api/v4/members/"+userid+"?include=locations,business,voteup_count,thanked_count,follower_count,favorited_count"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
    'Accept-Encoding':'gzip'      }     
r=requests.get(url,headers=headers)

用网页打开这个url只需要100-600ms,而在spyder里执行要4-6秒,为什么时间差距这么大呢?

阅读 11.8k
3 个回答

你应该先清空浏览器的所有缓存,然后再打开看最长花费时间
不应该拿网站原来访问过重复访问,很多东西被缓存了当然快

不出意料你用的是selenium, 如果你做个性能分析就知道了 这个对webdrive的初始化就得好几秒 然后打开网页很快 但是你是看不到初始化过程的 你会觉得很慢

我目前使用 chrome 的 headless 模式编写爬虫。他也可以和 PhantomJS 一样执行JS(喂,人家就是浏览器啊)。
requests访问,只能获取静态页面。但是使用 webdriver 需要考虑页面的css,js,图片等资源。

举个例子:

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏