作家
登录

Python编写知乎爬虫实践

作者: 来源: 2017-06-19 10:01:19 阅读 我要评论

"NzI0MTQwZGY2NjQyNDQ1NThmYTY0MjJhYmU2NmExMGY=|1480901160|2e7a7faee3b3e8d0afb550e8e7b38d86c15a31bc"
  •     "d_c0""AECA7v-aPwqPTiIbemmIQ8abhJy7bdD2VgE=|1468847182"
  •     "cap_id""N2U1NmQwODQ1NjFiNGI2Yzg2YTE2NzJkOTU5N2E0NjI=|1480901160|fd59e2ed79faacc2be1010687d27dd559ec1552a" 
  •  
  • headers = { 
  •     "User-Agent""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.3"
  •     "Referer""https://www.zhihu.com/" 
  •  
  • r = requests.get(url, cookies = cookies, headers = headers)  
  • 反爬虫策略应对-代劳IP池

    还有一部分网站是经由过程检测用户行动,例如同一IP短时光内多次拜访同一页面,或者同一账户短时光内多次进行雷同操作。

    大年夜多半网站都是前一种情况,对于这种情况,应用IP代劳就可以解决。如许的代劳ip爬虫经常会用到,最好本身预备一个。有了大年夜量代劳ip后可以每请求几回改换一个ip,这在requests或者urllib2中很轻易做到,如许就能很轻易的绕过第一种反爬虫。今朝知乎已经对爬虫做了限制,如不雅是单个IP的话,一段时光体系便会提示异常流量,无法持续爬取了。是以代劳IP池异常关键。网上有个免费的代劳IP API: http://api.xicidaili.com/free2016.txt

    1. import requests 
    2. import random 
    3.  
    4. class Proxy: 
    5.  
    6.     def __init__(self): 
    7.         self.cache_ip_list = [] 
    8.  
    9.     # Get random ip from free proxy api url. 
    10.     def get_random_ip(self): 
    11.         if not len(self.cache_ip_list): 
    12.             api_url = 'http://api.xicidaili.com/free2016.txt' 
    13.             try: 
    14.                 r = requests.get(api_url) 
    15.                 ip_list = r.text.split('\r\n'
    16.                 self.cache_ip_list = ip_list 
    17.             except Exception as e: 
    18.                 # Return null list when caught exception. 
    19.                 # In this case, crawler will not use proxy ip. 
    20.                 print e 

        推荐阅读

        Python源码理解: +=和 xx = xx + xx的区别

      前菜在我们应用Python的过程, 很多时刻会用到 + 运算, 例如:先来看看字节码:a = 1 + 2 print a # 输出 3 不但在加法中应用, 在字符串的拼接也同样发挥这重要的感化, 例如:a = 'abc' +>>>详细阅读


      本文标题:Python编写知乎爬虫实践

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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