首页 > 编程语言 >python获取IP代理

python获取IP代理

时间:2022-11-19 21:01:06浏览次数:40  
标签:python IP list 代理 dict ip print proxies

解决爬虫最快的方法就是用代理,不多说,直接上代码:


import requests
import parsel
import json


def getHTMLText(url):
try:
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
"Chrome/86.0.4240.198Safari/537.36 "
}
r = requests.get(url=url, headers=headers, timeout=30)
r.raise_for_status() # 如果状态不是200,产生HTTPError异常
# print(r.status_code)
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"


def data(page_text):
proxies_list_all = []
proxies_list = []
selector = parsel.Selector(page_text)
trs = selector.css('#list > table > tbody > tr') # css摄取
# print(trs)
for tr in trs:
ip_num = tr.css('td:nth-child(1)::text').get() # css摄取
ip_port = tr.css('td:nth-child(2)::text').get()
# print(ip_num)
# print(ip_port)
proxies_dict = {
"https": "https://" + ip_num + ':' + ip_port,
}
# print(proxies_dict)
proxies_list_all.append(proxies_dict)
# 检测IP代理是否可用
try:
response_1 = requests.get(url='https://www.baidu.com/', proxies=proxies_dict, timeout=5)
if response_1.status_code == 200:
print('代理可以使用', proxies_dict)
proxies_list.append(proxies_dict)
# 保存代理
with open("代理.txt", mode='a', encoding='utf-8') as f:
f.write(json.dumps(proxies_dict))
f.write('\n')
except:
print("当前代理不可用", proxies_dict)

# print("一共获取代理:", len(proxies_list_all))
# print("可以使用代理:", len(proxies_list))


if __name__ == '__main__':
for page in range(11, 22):
url = "https://www.kuaidaili.com/free/inha/" + str(page)
txt = getHTMLText(url)
data(txt)

可用代理保存在“代理.txt”文件中。


标签:python,IP,list,代理,dict,ip,print,proxies
From: https://blog.51cto.com/u_14012524/5870642

相关文章

  • python3-基础篇-10-字符串
      字符串操作在​​python3-基础篇-04-字符串格式化输出(%、format())​​中已经提到了一些,在本章中将列举字符串的其它操作。1.字符串重复输出‘值’*num   (num为重复......
  • [Typescript] 111. Hard - String Join
    Createatype-safestringjoinutilitywhichcanbeusedlikeso:consthyphenJoiner=join('-')constresult=hyphenJoiner('a','b','c');//='a-b-c'Or......
  • python(牛客)试题解析2 - 中等
    导航一、NC192二叉树的后序遍历二、NC117 合并二叉树三、求长度最长的的连续子序列使他们的和等于sum四、按顺序取出固定长度内容并合并两个数组为一个新数组五、输......
  • python 安装Basemap 以及cannot import name ‘dedent’ from ‘matplotlib.cbook’问
    我用的是anaconda管理工具,运行安装condainstallbasemap或者直接在anaconda,navigator中搜索basemap,进行安装  问题:cannotimportname‘dedent’from‘matplot......
  • Python 基础之wmi模块(windows监控)
    背景:最近学习Python监控系统状态的Psutil模块时。看到很多函数都是针对某些系统(如Linux、FreeBSD )的时就在想,既然有那么多监听系统状态的函数没有兼容win系统那......
  • 多进程- 进程join方法 - IPC机制 - 多种方法
    目录同步与异步阻塞与非阻塞综合使用创建进程的多种方式进程间数据隔离进程join方法IPC机制生产者消费者模型进程对象的多种方法僵尸进程与孤儿进程守护进程同步与异步用......
  • IPv4地址和子网掩码
    为什么需要IP地址思考如果2台主机的共有和私有IP地址都是一样的,会出现什么状况?我打开了一个网页,结果服务器发现你的IP地址是刚刚请求网页的地址,就有可能把资源发给你......
  • javascript: AppleWebkit
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-e......
  • ECMAScript客户端脚本语言的标准 注释 数据类型
    1基本语法:1,与html结合方式  1,内部js  定义<script>,标签内容就算js代码2,外部JS定义<script>,通过src属性引入外部的js......
  • ASEMI代理艾赛斯二极管DSA300I100NA,肖特基DSA300I100NA
    编辑-Z艾赛斯硅肖特基二极管DSA300I100NA参数:型号:DSA300I100NA最大重复反向阻断电压(VRRM):100V反向电流、漏极电流(IR):3mA正向电压降(VF):0.99V平均正向电流(IF):300A总功耗(Ptot):830W最......