python爬虫实践之爬取简单代理IP

数据抓取以及简单清洗


网页抓取思路

  • 获取网页源代码:

  • 如果是静态界面,可以考虑用requestes库直接请求
  • 如果是动态界面,要考虑JavaScript渲染和Ajax分离,这时候要运用其他方法解决

案例

  • 对一个反爬能力不强的网站进行自定义网址抓取代理IP:

  • 该网站是以文本保留的静态页面.为p节点的文本,思路,直接用正则表达式,默认生成txt文本在本目录下

  • 对某知名的免费代理进行抓取并构造格式:

  • 该网站抓取的ip与port是分离的,而且掺杂无用数据,要进行数据清洗和构造正常参数

  • 运用正则表达式提取,并用generator返回字典,默认生成txt文本在本目录下

  • 反爬代理 2

  • 这次的网站是国外服务器的网站,需要科学上网才能获取到数据,直接上分析:

  • 从这里面看.可以轻易分析出请求构造:
keyvalue说明
page1页数
limit10页的数据多少限制

在这里插入图片描述
在这里插入图片描述

  • 当直接访问时,是会出现json数据,但是当直接放在python中请求时,会出现状态码500错误.

在这里插入图片描述
在这里插入图片描述

  • 分析一下原因,可能是请求头没有加,加入最常见的User-Agentreferer后,还是出现了如下错误

在这里插入图片描述

  • 后来推测可能原因在Cookies那里,毕竟他没有请求参数或者其他的请求意向,极大可能在Cookies已经存储了验证信息了,打开Cookies`存储单元,里面有很多数据,但是还不能判定哪个是验证信息.

在这里插入图片描述

  • 于是我在响应头里找到了一个可疑数据session,他是唯一一个在请求头和响应头里面同时存在的,所以我清空该值试试响应结果,果然是500状态码,确定了该请求数据的验证信息来自于session.

在这里插入图片描述

  • 解决方法:直接在请求头添加Cookies就可以解决问题

在这里插入图片描述

  • 解决代码:
self.headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
            'cookie': 'session=eyJfcGVybWFuZW50Ijp0cnVlLCJwYXRoIjoiL2dhb25pIn0.EMK4Jw.SVpjwvOHNYGzsnNj72LceRTBVa4',
            'referer': 'https://www.attackmen.com/gaoni'
        }

抓取成果实例

代理IP样品

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值