分析网页
这次分析的是快代理,就是这个
想要获取这上面的IP需要分析网页结构
打开开发者工具进行分析
发现所有IP组数据在tr
节点中,每个具体数据在td
节点中
代码实现时,从这个节点中获取信息,有很多方法
如果需要多页爬取,需要分析网址规律
从以上图片可得知,每页 网址前部分相同,都是这个https://www.kuaidaili.com/free/inha/
后面是页数
获取IP
所以可以这样进行获取
import requests
from bs4 import BeautifulSoup
# 目标网址
url = 'https://www.kuaidaili.com/free/inha/' + '1'
# 伪造头信息
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
}
# 发送请求
r = requests.get(url,headers=header)
# 创建BeautifulSoup对象
soup = BeautifulSoup(r.text,'lxml')
# 使用find_all方法进行获取
ip = soup.find_all('td',{'data-title':'IP'}) # 获取IP的节点数据
port = soup.find_all('td',{'data-title':'PORT'}) # 获取端口的节点数据
用到了BeautifulSoup
这个库文件,使用到了find_all
方法
储存IP
接下来储存抓取的IP
# 建一个列表 用来装IP和端口
proxies = []
for ip,port in zip(ip,port):
ip = ip.get_text() # 获取IP文本
port = port.get_text() # 获取端口文本
proxy = ip + ':' + port # IP和端口拼接
proxies.append(proxy) # 将拼接后的IP加端口添加到列表中
# 打开文件,文件结束后,自动关闭文件
with open('data.txt', 'w+') as f:
for i in proxies:
proxy = {
'http':i,
'https':i
}
print(proxy)
f.write(i + '\n') # 写入文件
在这里我用的是txt格式存储,还可以用其他方式存储,比如json,数据库,等等
全部代码
import requests
from bs4 import BeautifulSoup
url = 'https://www.kuaidaili.com/free/inha/' + '1'
header = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'
}
r = requests.get(url,headers=header)
soup = BeautifulSoup(r.text,'lxml')
ip = soup.find_all('td',{'data-title':'IP'})
port = soup.find_all('td',{'data-title':'PORT'})
proxies = []
for ip,port in zip(ip,port):
ip = ip.get_text()
port = port.get_text()
proxy = ip + ':' + port
proxies.append(proxy)
for i in proxies:
proxy = {
'http':i,
'https':i
}
print(proxy)
with open('data.txt', 'w+') as f:
for i in proxies:
f.write(i + '\n')
print(proxies)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)