收藏 400-998-9776 转2 服务时间 周一至周日 9:00-23:00 注意:本站不提供境外服务
您的位置:首页 >文章内容
爬虫是如何突破网站的反爬虫机制的
来源:互联网 作者:admin 时间:2019-01-28 17:50:07

    不管是哪个网站,都是设置了反爬虫机制的,否则无法正常的运营,毕竟限制爬虫非常多,整个网络大半的流量都是由它贡献的。这对爬虫来说,可不是什么好事,因为这样大大限制了爬虫的活动,但也不是全部限制住了。今天跟小编去了解下爬虫是如何突破网站的反爬虫机制的。


    其实,爬虫可以伪装成为浏览器,伪装为一个正常的用户使用浏览器去访问目标网站,并顺利的获取到数据,伪装方法:


爬虫是如何突破网站的反爬虫机制的


    1.使用add_header()添加报头


    import urllib.request


    url = "http://blog.csdn.net/hurmishine/article/details/71708030"req = urllib.request.Request(url)


    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36')


    data = urllib.request.urlopen(req).read()


    print(data)


    导入包,定义url地址我们就不说了,我们使用urllib.request.Request(url)创建一个Request对象,并赋值给变量req,创建Request对象的格式:urllib.request.Request(url地址)


    随后我们使用add_header()方法添加对应的报头信息,格式:Request(对象名).add_header(‘对象名’,’对象值’)


    现在我们已经设置好了报头,然后我们使用urlopen()打开该Request对象即可打开对应的网址,多以我们使用


    data = urllib.request.urlopen(req).read()打开了对应的网址,并读取了网页内容,并赋值给data变量。


    2.使用build_opener()修改报头


    由于urlopen()不支持一些HTTP的高级功能,所以我们需要修改报头。可以使用urllib.request.build_opener()进行,我们修改一下上面的代码:


    import urllib.request


    url = "http://blog.csdn.net/hurmishine/article/details/71708030"headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36")


    opener = urllib.request.build_opener()


    opener.addheaders = [headers]


    data = opener.open(url).read()


    print(data)


    上面代码中我们先定义一个变量headers来储存User-Agent信息,定义的格式是(“User-Agent”,具体信息)


    具体信息我们上面已经获取到了,这个信息获取一次即可,以后爬取其他网站也可以用,所以我们可以保存下来,不用每次都F12去找了。


    然后我们用urllib.request.build_opener()创建自定义的opener对象并赋值给opener,然后设置opener的addheaders,就是设置对应的头信息,格式为:“opener(对象名).addheaders = [头信息(即我们储存的具体信息)]”,设置好后我们就可以使用opener对象的open()方法打开对应的网址了。格式:“opener(对象名).open(url地址)”打开后我们可以使用read()方法来读取对应数据,并赋值给data变量。


    综上所述,两种方法都可以实现了爬虫模拟浏览器打开网址,并获取网址的内容信息,避免了403错误,但是在使用的过程中要注意两者方法的区别。


推荐阅读
  • 10 2019-08
    更换IP的软件选择哪家比较好用

    更换IP的软件选择哪家比较好用?现如今,网络已经成为了人们生活的一部分。随着网络这个大市场的不断开发,越来越多的域名,网页的出现。而这些网页中有一个部分是被国内外的搜索门户

  • 29 2019-04
    游戏用的动态IP代理找哪家好?

    游戏用的动态IP代理找哪家好?很多游戏多开都是要换IP的,不然根本多开不了,如果是经常需要多开的,那么准备一个动态IP代理是很有必要的,大家平常都使用哪家的呢?哪家的动态IP代理效

  • 24 2019-12
    http代理ip的响应过程讲解

    当我们用浏览器来访问网站的时候,其实这个响应过程,是需要很多个环节共同来完成的,只是用户无法直接在屏幕上看到整个流程。现在随着代理ip的使用变得更加频繁,大家对于网络也有了

  • 08 2019-04
    搭建IP代理池有几种方法:最好的、最实惠的、不花钱的

    搭建IP代理池有几种方法,最好的,最实惠的,还有花钱的,你找哪一种呢?当然了,不同的方法其质量也是不一样的,其实从文字上就能知道三者的性价比了。不过很多人还是不死心,还是想

  • 26 2019-02
    采集信息使用多进程好还是多线程好?

    单个爬虫的爬取量太少了,如果需要爬取上万甚至更多的网页,这是无法满足需求的。为了降低耗时,可以使用多进程或者多线程爬取。那么使用多进程好还是多线程好?今天小编为大家介绍下

  • 08 2019-08
    换IP软件怎么让网站提高排名

    换IP软件怎么让网站提高排名?在当今的网络中,建设网站推广网站,已经成为许多企业必不可少的一项投资。但是对于新建立的网站来说,要想通过正常优化手段获得排名的话,简直难如上青