您的位置:首页 > 新闻资讯 >文章内容
如何突破反爬虫机制抓取网页信息?
来源:互联网 作者:admin 时间:2019-01-22 17:26:43

    爬虫怎么抓取网页信息?人人都说使用Python爬虫非常简单,容易学,无非是分析HTML、json数据,真的就这么简单吗?太天真了,网站都设有反爬虫机制,想要获取数据,首先要不被限制了,能突破网站的反爬虫机制,才能获取到信息。那么如何突破反爬虫机制呢?


    一、爬虫怎么抓取网页信息


    1.先生成用于抓取第一个URL的初始请求,然后指定要使用从这些请求下载的响应调用的回调函数。


    2.第一个执行的请求通过调用 start_requests()(默认情况下)Request为在start_urls和中指定的URL生成的parse方法获取, 并且该方法作为请求的回调函数。


如何突破反爬虫机制抓取网页信息?


    3.在回调函数中,您将解析响应(网页),并返回带有提取的数据,Item对象, Request对象或这些对象的可迭代的对象。这些请求还将包含回调(可能是相同的),然后由Scrapy下载,然后由指定的回调处理它们的响应。


    4.在回调函数中,您通常使用选择器来解析页面内容 (但您也可以使用BeautifulSoup,lxml或您喜欢的任何机制),并使用解析的数据生成项目。


    5.从爬虫返回的项目通常将持久存储到数据库(在某些项目管道中)或使用Feed导出写入文件。


    注意:当编写爬网爬虫规则时,避免使用parse作为回调,因为CrawlSpider使用parse方法本身来实现其逻辑。所以如果你重写的parse方法,爬行爬虫将不再工作。


    二、如何突破反爬虫机制


    1.限速


    scrapy 默认情况下在下载网页的空隙是 0 的,也就是返回一个页面,立刻就去下载了。


    在 settings.py 文件中有一个参数是:DOWNLOAD_DELAY = 0


    这个参数的意思是下载器在下载同一个网站下一页面需要等待的时间,该选项可以用来限制爬取速度,减轻服务器压力。同时也支持小数。那我们就知道了,在爬取过快的时候,适当限一下速,别让翻车了就不好。


    2.代理IP


    使用机灵代理中的大量IP,来突破限制,多IP访问以获取信息,提高工作效率。


    3.cookies的禁用


    在settings.py 文件中有一个参数是:COOKIES_ENABLED = False


    默认情况下是禁用的,request 就不会把 cookies 带进去。在一些不需要登录就能访问的网站来说,这种方式是很好用的。


    如何突破反爬虫机制抓取网页信息?上介绍了突破限制的方法,虽说很多网站都设置了上面的这些反爬虫,但网站并不止这些反爬虫,在进行数据爬取之前,要先了解详细的情况,制定计划。


相关文章内容简介
推荐阅读
  • 02 2019-04
    选择动态IP代理,对比哪些方面容易看到实际效果?

    网站有所发展之后,肯定是不断的完善,如果你还想任意采集,这是不可能的。网站发展越好,用户就越多,虽然服务器配置也跟上,但是如果大量的爬虫过来,服务器也耗不起啊。为此,网站

  • 10 2019-09
    什么是socks5协议的TCP认证?

    之前我们了解过socks5代理IP是怎么使用的?这种代理IP类型的使用越来越多,对于程序员而言,更好的了解它的工作原理以及相关知识,能够更加高效的开展工作,那么接下来,让我们解析socks5协

  • 26 2019-03
    代理ip地址的选择方法和所需时间

    现在由于经济和其他方面的快速发展,不仅仅是个人企业,也需要这种大数据的支持,然后根据自己获得的这些数据制定适合自己的营销方案,当然关于这种数据的搜集还是需要这种代理IP,现

  • 24 2019-09
    PHP使用代理IP访问指定页面

    PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,

  • 21 2020-02
    ip代理的类型都有什么

    更改ip地址的方法有很多,其中最简单的方法就是利用软件自动更改ip地址,其中的佼佼者就是机灵代理了,那么你知道更改ip地址时都可以采用哪些类型吗?不同的ip代理类型有着不一样的用途

  • 27 2020-05
    找到合适的代理IP并不难

    不同的代理IP有什么区别?使用代理IP时,现在有很多代理IP商家,很多用户也看不出有什么不同,也不知道该怎么选择。那么,代理IP有什么不同呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部