加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python数据可视化:Python大佬有哪些?

发布时间:2018-12-01 18:21:29 所属栏目:教程 来源:法纳斯特
导读:有立场地进修 之前讲了署理池以及Cookies的相干常识,这里针对搜狗搜刮微信公家号文章的爬取,将它俩实践一下。 在崔大的书内里,他是用署理IP来应对搜狗的反爬法子,由于统一IP会见网页过于频仍,就会跳转验证码页面。 不外期间在前进,搜狗搜刮的反爬也
副问题[/!--empirenews.page--]

有立场地进修

之前讲了署理池以及Cookies的相干常识,这里针对搜狗搜刮微信公家号文章的爬取,将它俩实践一下。

在崔大的书内里,他是用署理IP来应对搜狗的反爬法子,由于统一IP会见网页过于频仍,就会跳转验证码页面。

不外期间在前进,搜狗搜刮的反爬也在更新,此刻它是IP加Cookies双重把关。

01 网页说明

Python数据可视化:Python大佬有哪些?

获取微信公家号文章信息,问题、开头、公家号、宣布时刻。

哀求方法为GET,哀求网址为红框部门,后头的信息没什么用。

02 反爬破解

Python数据可视化:Python大佬有哪些?

什么时辰呈现上图这种环境呢?

两种,一种统一个IP一再见见页面,另一种统一个Cookies一再见见页面。

两个都有,挂的更快!完备爬取我只乐成了一次...

由于我最开始就是先什么都不配置,然后就呈现验证码页面。然后用了署理IP,照旧会跳转验证码页面,直到最后改变Cookies,才乐成爬取。

01 署理IP配置

  1. def get_proxies(i): 
  2.     """ 
  3.     获取署理IP 
  4.     """ 
  5.     df = pd.read_csv('sg_effective_ip.csv', header=None, names=["proxy_type", "proxy_url"]) 
  6.     proxy_type = ["{}".format(i) for i in np.array(df['proxy_type'])] 
  7.     proxy_url = ["{}".format(i) for i in np.array(df['proxy_url'])] 
  8.     proxies = {proxy_type[i]: proxy_url[i]} 
  9.     return proxies 

署理的获取以及行使这里就不赘述了,前面的文章有提到,有乐趣的小搭档可以自行去看看。

颠末我两天的实践,免费IP确实没什么用,两下子就把我真实IP揪出来了。

02 Cookies配置

  1. def get_cookies_snuid(): 
  2.     """ 
  3.     获取SNUID值 
  4.     """ 
  5.     time.sleep(float(random.randint(2, 5))) 
  6.     url = "http://weixin.sogou.com/weixin?type=2&s_from=input&query=python&ie=utf8&_sug_=n&_sug_type_=" 
  7.     headers = {"Cookie": "ABTEST=你的参数;IPLOC=CN3301;SUID=你的参数;SUIR=你的参数"} 
  8.     # HEAD哀求,哀求资源的首部 
  9.     response = requests.head(url, headers=headers).headers 
  10.     result = re.findall('SNUID=(.*?); expires', response['Set-Cookie']) 
  11.     SNUID = result[0] 
  12.     return SNUID 

总的来说,Cookies的配置是整个反爬中最重要的,而个中的要害即是动态改变SNUID值。

这里就不具体说个中缘由,事实我也是在网上看大神的帖子才贯通到的,并且贯通的还很浅。

乐成爬取100页就只有一次,75页,50页,乃至到最后一爬就挂的环境都呈现了...

我可不想身陷「爬-反爬-反反爬」的泥潭之中,爬虫之后的工作才是我的真正目标,好比数据说明,数据可视化。

以是干票大的赶忙溜,只能跪拜搜狗工程师。

03 数据获取

1 结构哀求头

  1. head = """ 
  2. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
  3. Accept-Encoding:gzip, deflate 
  4. Accept-Language:zh-CN,zh;q=0.9 
  5. Connection:keep-alive 
  6. Host:weixin.sogou.com 
  7. Referer:'http://weixin.sogou.com/', 
  8. Upgrade-Insecure-Requests:1 
  9. User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 
  10. """ 
  11.  
  12. # 不包括SNUID值 
  13. cookie = '你的Cookies' 
  14.  
  15. def str_to_dict(header): 
  16.     """ 
  17.     结构哀求头,可以在差异函数里结构差异的哀求头 
  18.     """ 
  19.     header_dict = {} 
  20.     header = header.split('n') 
  21.     for h in header: 
  22.         h = h.strip() 
  23.         if h: 
  24.             k, v = h.split(':', 1) 
  25.             header_dict[k] = v.strip() 
  26.     return header_dict 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读