使用Python爬取西刺代理数据 西刺免费代理ip

西刺免费代理ip(使用Python抓取西刺代理数据)
/1前言/
细心的朋友应该知道,上次小编发表了一篇关于IP代理的文章,基于Python网络爬虫技术 , 主要介绍了如何从IP代理网站抓取可用IP,Python脚本实现了验证IP地址的时效性 。如果爬虫被禁止,可以通过文中的方法解决 。如果没时间上车,可以戳这篇文章看看:教你如何用免费代理ip抓取数据 。
接下来,即将在小编发布的三篇文章将从三个方面展开:代理网站的介绍和反抓取措施、数据抓取和数据可视化操作 。各方面独家,希望对大家的学习有帮助 。接下来,小编首先介绍该机构网站及其反抓取措施 。
/2简介/
西代理网站是一个收录中国国内代理的网站,实时的有几十万 。上面有很多代理IP,有的是免费的,有的是付费的 。免费一般是没有的,即使当时用的很好 , 但是用不了多久就会变酷 。
/3反爬虫措施/
本文的主要内容是使用Python来抓取该网站的数据 , 其中爬虫主要使用requests库 。这里简单介绍一下反爬虫措施 。
经过初步测试,发现该网站有很多反爬虫措施 , 测试了以下措施:
1.直接使用** requests**库,网站不会不设置任何头直接返回数据 。
2.同一个ip连续被访问超过40次,直接屏蔽该ip 。一开始我的** ip**就是这样被屏蔽的 。
3.为了解决这两个问题,最后,经过研究,可以采用以下方法有效解决:
4.通过获取正常的网络流量来获取正常的请求头,并在发出请求时设置这些常规的请求头 。这样做的目的是让目标网站认为我们的请求是通过浏览器正常发起的,而不是使用程序自动发起的 。这样就解决了第一个痛点 。
5.超文本传送协议(Hyper Text Transport Protocol的缩写)
6.要求
7.超文本传送协议(Hyper Text Transport Protocol的缩写)
8.构建代理池 。先从其他网站获取一批初始代理 , 在抓取本网站代理数据时,使用这些代理实时加入被抓取的代理 。每次爬行时,在代理池中随机选择一个代理,同时及时从代理池中移除那些失败或被阻塞的代理 。这样我们就不用担心一个ip时间长了会被封杀 。
为了正常获取请求头 , 使用包捕获工具Fiddler捕获正常浏览器访问的网站的包 , 如图:
超文本传送协议(Hyper Text Transport Protocol的缩写)
提取数据后,将数据封装到requests库可以识别的header dictionary中供其调用,这样通过使用正常的数据包,我们就不用担心网站使用header check了 。代码中专门定义了一个函数 , 只有调用该函数才能获得字典:
然后,在请求网站的时候,设置这个头 。代码如下:
【使用Python爬取西刺代理数据 西刺免费代理ip】要求
到目前为止,我们已经提前做好了反爬虫措施的准备 。下一步将分析网页的结构,提取网页的数据,这将在我们的下一篇文章中详细说明 。
/4摘要/
本文的主要内容是代理网站的基本介绍,然后简单介绍了代理网站的反爬虫措施 。之后用抓包工具Fiddler来抓包这个网站的数据包 。基于Python中的爬虫库请求,提前部署请求头来模拟浏览器 。下一篇文章将带你了解网页结构的分析和网页数据的提取 , 敬请期待~ ~

    推荐阅读