自建IP池,
本文主要详细介绍python如何创建自己的IP池。本文中的示例代码解释得很详细,对我们的学习或工作有一定的参考价值。有需要的可以参考一下。
00-1010开发环境模块使用if安装python第三方模块,内部如何配置python解释器pycharm,如何安装插件代理ip结构思路一、数据源分析二。代码实现步骤代码
目录
Python 3.8
路径
开发环境
请求pip安装请求
pip安装
模块使用
R win输入cmd,单击ok,输入安装命令pip安装模块名称(pip安装请求),然后按enter。
在pycharm中单击终端,输入安装命令。
如果安装python第三方模块
选择文件设置项目python解释器。
单击齿轮并选择添加。
添加python安装路径
如何配置pycharm里面的python解释器
选择文件设置插件。
点击市场输入要安装的插件名称,如:翻译插件输入翻译/中文插件输入中文。
选择相应的插件,然后单击安装。
安装成功后,会弹出重启pycharm的选项。点击确定,重启生效。
pycharm如何安装插件
proxies _ dict={
Http 3360 3358 IP :端口,
Https 3360 3358 IP :端口,
}
代理ip结构
思路
找到我们想要的数据内容,它来自哪里?
一. 数据来源分析
发送请求,并向目标URL发送请求。
获取数据,获取服务器返回的响应数据(网页源代码)
分析数据,提取我们想要的数据内容。
保存数据,爬音乐视频本地csv数据库… IP检测,检查IP代理是否可用,用IP代理保存。
从fromimport导入,从什么模块导入什么方法,从xxx import * #导入所有方法。
二. 代码实现步骤
#导入数据请求模块
导入请求#数据请求模块第三方模块pip安装请求
#导入正则表达式模块
导入#内置模块
#导入数据解析模块
导入parsel #数据解析模块第三方模块pip安装parsel这是scrapy框架的核心组件。
lis=[]
清单1=[]
# 1.发送一个请求,并向目标URL发送一个请求https://www.kuaidaili.com/free/。
对于范围(11,21):中的页面
Url=f 3359 www.kuaidaili.com/free/inha/{page}/#确定请求的URL地址
""
headers 请求头 作用伪装python代码
"""
# 用requests模块里面get 方法 对于url地址发送请求, 最后用response变量接收返回数据
response = requests.get(url)
# <Response [200]> 请求之后返回response响应对象, 200状态码表示请求成功
# 2. 获取数据, 获取服务器返回响应数据(网页源代码) response.text 获取响应体文本数据
# print(response.text)
# 3. 解析数据, 提取我们想要的数据内容
"""
解析数据方式方法:
正则: 可以直接提取字符串数据内容
需要把获取下来html字符串数据 进行转换
xpath: 根据标签节点 提取数据内容
css选择器: 根据标签属性提取数据内容
哪一种方面用那种, 那是喜欢用那种
"""
# 正则表达式提取数据内容
"""
# 正则提取数据 re.findall() 调用模块里面的方法
# 正则 遇事不决 .*? 可以匹配任意字符(除了换行符\n以外) re.S
ip_list = re.findall(<td data-title="IP">(.*?)</td>, response.text, re.S)
port_list = re.findall(<td data-title="PORT">(.*?)</td>, response.text, re.S)
print(ip_list)
print(port_list)
"""
# css选择器:
"""
# css选择器提取数据 需要把获取下来html字符串数据(response.text) 进行转换
# 我不会css 或者 xpath 怎么办
# #list > table > tbody > tr > td:nth-child(1)
# //*[@id="list"]/table/tbody/tr/td[1]
selector = parsel.Selector(response.text) # 把html 字符串数据转成 selector 对象
ip_list = selector.css(#list tbody tr td:nth-child(1)::text).getall()
port_list = selector.css(#list tbody tr td:nth-child(2)::text).getall()
print(ip_list)
print(port_list)
"""
# xpath 提取数据
selector = parsel.Selector(response.text) # 把html 字符串数据转成 selector 对象
ip_list = selector.xpath(//*[@id="list"]/table/tbody/tr/td[1]/text()).getall()
port_list = selector.xpath(//*[@id="list"]/table/tbody/tr/td[2]/text()).getall()
# print(ip_list)
# print(port_list)
for ip, port in zip(ip_list, port_list):
# print(ip, port)
proxy = ip + : + port
proxies_dict = {
"http": "http://" + proxy,
"https": "http://" + proxy,
}
# print(proxies_dict)
lis.append(proxies_dict)
# 4.检测IP质量
try:
response = requests.get(url=url, proxies=proxies_dict, timeout=1)
if response.status_code == 200:
print(当前代理IP: , proxies_dict, 可以使用)
lis_1.append(proxies_dict)
except:
print(当前代理IP: , proxies_dict, 请求超时, 检测不合格)
print(获取的代理IP数量: , len(lis))
print(获取可用的IP代理数量: , len(lis_1))
print(获取可用的IP代理: , lis_1)
dit = {
http: http://110.189.152.86:40698,
https: http://110.189.152.86:40698
}
到此这篇关于一文教你Python如何创建属于自己的IP池的文章就介绍到这了,更多相关Python创建IP池内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。