樊九九:简单python爬虫,爬取西刺高密代理

本文介绍了如何使用Python从西刺网站抓取高匿名代理IP,并通过访问httpbin.org/ip检查代理的可用性。首先,通过urllib库获取网页源码,然后使用正则表达式提取IP和端口信息,最后建立代理处理器验证代理的可行性,剔除不可用的代理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from urllib import request
import random 
import re	
def get_html(url):#获取西刺网站的html源码
	header = {
		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
	}
	req = request.Request(url, headers = header)
	response = request.urlopen(req)
	html = response.read().decode()
	
	return html
def get_proxy(html):#利用re,找出每个代理的ip 和端口,存入列表
	firstlist = re.findall(r'<tr class=.*?>(.*?)</tr>',html,re.S)
	print(len(firstlist))
	for i in firstlist:
		ip=re.findall(r'\d+\.\d+\.\d+\.\d+',i,re.S)[0]
		port= re.findall(r'<td>(\d+)</td>',i,re.S)[0]
		proxy = '{}:{}'.format(ip,port)
		proxy_list.append(proxy)
	return proxy_list
def get_real_proxy(proxy_list):#检查每个代理ip是否可用
	url = 'http://httpbin.org/ip'#访问此网站返回ip信息,可用于检查代理是否有效
	for i in range(8):
		print(i)
		perproxy = proxy_list[i]
		print(perproxy)

		proxy_suport= request.ProxyHandler({'http':perproxy})#创建代理实例
		opener = request.build_opener(proxy_suport)#创建打开器
		request.install_opener(opener)#安装打开器
		req = request.Request(url)
		try:
			html = request.urlopen(req).read().decode()#对返回信息进行解码
			print(html)
		except Exception as e:
			print(e)
			print("该代理不可用")
			del proxy_list[i]
	return proxy_list
if __name__  ==  "__main__":
	url = 'http://www.xicidaili.com/nn/'
	proxy_list = []
	html =get_html(url)
	proxy_list = get_proxy(html)
	for i in proxy_list:
		print(i)
	
	real_proxy = get_real_proxy(proxy_list)
	print (len(real_proxy))




	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值