spider中的仿浏览器抓取(User-Agent)

      有些网站为了防止spider对客户信息的抓取或者抓取一些信息被他人所利用,对访问网站进行了一定的限制,但这些网页可以通过浏览器正常访问,因此,我们通过把spider伪装成浏览器对网页进行抓取,这些步骤通过在urlopen(url,headers)中添加headers来完成。

1.通过spider打开一个csdn博主的主页,会发现状态码返回403,这就说明这个博客网页加了限制。

    我们先通过Google的chrome浏览器打开这个csdn博客(http://blog.csdn.net/jizhen_tan/article/details/51661203),再通过F12打开抓包工具,找到network这一选项栏再刷新网页,就会发现这些东西:

     我们点开第一个Name51661203,会在headers中发现有三个元素:General、Response Headers、Requset Headers。我们要做的是模仿Requset Headers中的写法来把spider伪装成浏览器对网页进行访问。


2.这次用到的库为urllib2,它是urllib的扩展。

在headers中主要添加四个元素:User-Agent、Host、GET,这些都可以在Requset Headers中找到。headers是一个字典型。



3.一些网站会对User-Agent进行检测,如果一个时间段内过多的访问就会遭到封IP,因此我们可以通过随机变换User-Agent来进行访问:

这是搜索到的一些User-Agent:爬虫User-Agent收录

通过一个循环来实现:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...
    iPhone阅读 16,056评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,363评论 19 139
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,368评论 4 46
  • 我的第一本书也是我目前的唯一一本书是文通天下出的,书名是《我哪懂什么坚持,全靠死撑》,当然在这里我的目的也不是给我...
    文长长阅读 10,654评论 23 17
  • 每次一吵架就是要分开,就是这样不要脸的倒贴。好累。不是别人不认真,只是自己不较真。连自己都不在意自己,又怎么让别人...
    飞ingb100阅读 1,228评论 0 0