【爬虫某代理ip测试】


前言

都知道爬虫是python里面比较火的一个领域,那么爬虫的思路是什么呢?怎样实现他的思路呢?请往下看。


一、爬虫的思路

HTTP通信由两部分组成: 客户端请求消息 与 服务器响应消息,当我们输入一个网址的时候,会从我们的浏览器发出一个request请求,服务器收到请求后,会给我们返回一系列response文件对象,我们需要通过分析这些数据获得自己想要的数据。

二、爬虫步骤

1.引入库

第三方模块(python需要另行下载,anaconda内带,不用另行下载):

1.下载模块

我们只需要在终端输入以下内容,然后回车。

$pip install request

2.引用模块

1.先导入模块,在使用模块,不然会报错。

代码如下(示例):

import request

3.了解模块

请求有:get, head, post, patch, put, delete, options几种,而在爬虫里面你只需要了解两种请求方式:1.get()请求。2.post()请求
请求参数需要了解:url、data、json、headers、cookies、proxies(代理ip)、timeout(设置响应时间)、allow_redirects(设置重定向)、verify(是否进行网页证书认证)


爬取代理小案例思路

1.确定网址,分析网站,导入模块,发送请求接受。由分析所得,这是一个静态页面,所以直接用导航栏网址。

import request
url = 'https://www.kuaidaili.com/ops/proxylist/1/'
headers = {
	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
response = request.get(url=url, headers=headers)
print(response) #若返回<Response [200]>则请求成功
mp = [] #创建列表,用于存储有用ip

2.使用css语法提取数据。

import parsel#导入模块
selector = parsel.Selector(response.text)
list = selector.css('#freelist table tbody tr')
for li in list:
    ip = li.css('td:nth-child(1)::text').get( )
    port = li.css('td:nth-child(2)::text').get( )

3.构建代理

		proxie = ip + ':' + port
    	proxies = {
        	'http': 'http://' + proxie,
        	'https': 'https://' + proxie,
    	}

4.检测代理ip是否有用,有用的添加到mp列表

	    try: #进行异常捕获
	        response_1 = requests.get(url=url, proxies=proxies, headers=headers)
	
	        time.sleep(1)
	        if response_1.status_code == 200: #如果请求返回的数据为200
	            print(proxies, '可用')
	            mp.append(proxies)
	
	    except Exception:
	        print(proxies, '不可用')
print(mp)

5.最后有需求的可以进行保存。

for m in mp:
    with open('代理.txt', 'w', encoding='utf-8') as f:
        f.write(m)

6.结果如下结果如图


总结

爬虫的思路非常雷同,发送,响应,获取,解析,不论对哪个网站,都可以如此。而这个小小的案例可见免费代理emmm~,这里只可意会。思路放这了,剩下的看你们自己了。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ฅ˙Ꙫ˙ฅ599

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值