作家
登录

爬虫进阶:反爬策略的应对机制

作者: 来源: 2017-05-15 12:09:03 阅读 我要评论

  • 然而 Scrapy 不支撑这种认证方法,须要将认证信息 base64 编码后,参加 Headers 的 Proxy-Authorization 字段:

    import base64

    1. import base64  
    2.  # Set the location of the proxy proxy_string = choice(self._get_proxies_from_file('proxies.txt')) # user:pass@ip:port proxy_items = proxy_string.split('@') request.meta['proxy'] = "http://%s" % proxy_items[1]  # setup basic authentication for the proxy user_pass=base64.encodestring(proxy_items[0]) request.headers['Proxy-Authorization'] = 'Basic ' + user_pass 

    动态加载

    如今越来越多的网站应用 ajax 动态加载内容,这时刻可以先朝长进步 ajax 请求分析一下,有可能根据 ajax 请求构造出响应的 API 请求的 URL 就可以直接获取想要的内容,平日是 json 格局,反而还不消去解析 HTML。

    然而,很多时刻 ajax 请求都邑经过后端鉴权,不克不及直接构造 URL 获取。这时就可以经由过程 PhantomJS+Selenium 模仿浏览器行动,抓取经由 js 衬着后的页面。具体可以参考:Scrapy+PhantomJS+Selenium 动态爬虫

    须要留意的是,应用 Selenium 后,请求不再由 Scrapy 的 Downloader 履行,所以之前添加的请求优等信息都邑掉效,须要在 Selenium 中从新添加

    1. headers = {...}  
    2. for key, value in headers.iteritems():     webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = value 
    1. driver = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs'

    【编辑推荐】

    1. 应对数据中间的能源效力挑衅
    2. 深刻懂得HDFS工作机制
    3. 设计爬虫Hawk背后的故事
    4. 大年夜范围爬虫流程总结
    5. Python法度榜样中不合的重启机制
    【义务编辑:武晓燕 TEL:(010)68476606】

      推荐阅读

      数据化运营7大经典思路

    1. 分化思路分化思路还有一个好处是可以赞助运营更好的分工,进行组织架构的优化调剂。使员工更专业,更聚焦到某一块营业上,大年夜而培养出一个细分本能机能的专家,当每个细分本能机能都>>>详细阅读


    本文标题:爬虫进阶:反爬策略的应对机制

    地址:http://www.17bianji.com/lsqh/35216.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)