Get Proxy – 副本.py 这是自己写的获取代理的程序,1.去proxy.newday.me网站注册用户,2.将用户token写入文件中,3.运行 第一步 说明: 注意: 开始请求: 说明: 说明: 第六步 请求: 数据格式化(转换列表) 说明: 第七步 第八步,也是本文重点 2.获取数据 3.创建XML处理程序变量 4.定义变量 说明: 5.将数据转换为列表 6.保存数据
带你用Python爬取代理
导入库:import requests,xml.etree.ElementTree as ET
Requests:请求库,用于请求API网址
xml.etree.ElementTree:用于解析返回值时,解析XML数据
第二步
构造请求参数Arguments={ "https":input("是否支持HTTPS,0,不限;1,HTTPS代理,请输入:"), "type":input("代理类型,0,不限;1,透明代理;2,匿名代理;3,高匿代理,请输入:"), "format":input("返回格式,text,文本;json,JSON;xml,XML,请输入:"), "token":你的Token }
没有token的请去
proxy.newday.me
注册用户
然后,把账号token值填入这里
第三步
判断用户输入的返回格式:
先判断jsonif Arguments["format"]=="json":
Response=requests.get("https://api.newday.me/proxy/extract",Arguments).json()
Arguments:这是前面定义的传参
json:获取json格式的数据
第四步
解析返回值(json数据)Data=Response["data"]["list"] Datum=[] for i in range(len(Data)): Datum.append(Data[i])
Response:是上面请求的返回值对象
Data:用于存储所有代理数据
Datum:列表,每条数据都是一个代理的详细数据
第五步
将数据写入文件for i in range(len(Data)): Data=Datum[i] with open("./Proxys/"+str(i)+".txt","w") as f: f.write("ID:"+str(i)+"n") f.write("Address:"+Data["ip"]+"n") f.write("Port:"+str(Data["port"])+"n") f.write("Type:"+str(Data["type"])+"n") f.write("Https:"+str(Data["https"])+"n") f.write("Duration:"+Data["duration"]+"n") f.write("Percent:"+str(Data["percent"])+"n") f.write("Time:"+str(Data["time"])+"n") print("第{}条数据写入完毕!".format(str(i+1)))
判断用户返回值格式(text)elif Arguments["format"]=="text":
Response=requests.get("https://api.newday.me/proxy/extract",Arguments).text
Data=" ".join(Response.split()) Datum=Data.split(" ") for i in range(len(Datum)): a=Datum[i] b=a.split(":")
Data:将请求到的数据用空格分隔
Datum:将Data用空格分离数据进列表
i:Datum的长度
a:提取Data里的第i条数据
b:将a用冒号分离数据进列表
将数据保存进文件:for i in range(len(b)): with open("./Proxys/"+str(i)+".txt","w") as f: f.write("Address:"+b[i]+"n") f.write("Port:"+b[i]+"n") print("第{}条数据写入完毕!".format(str(i+1)))
1.判断用户返回值类型(xml)elif Arguments["format"]=="xml":
Response=requests.get("https://api.newday.me/proxy/extract",Arguments).text
root=ET.fromstring(Response)
Data=[] i=0
Data:数据存储变量
i:循环变量for iterm in root.iterfind("data/list/item"): Data.append(iterm)
for iterm in Data: ip=iterm.findtext("ip") port=iterm.findtext("port") type=iterm.findtext("type") https=iterm.findtext("https") duration=iterm.findtext("duration") percent=iterm.findtext("percent") time=iterm.findtext("time") with open("./Proxys/"+str(i)+".txt","w") as f: f.write("ID:"+str(i)+"n") f.write("Address:"+ip+"n") f.write("Port:"+str(port)+"n") f.write("Type:"+str(type)+"n") f.write("Https:"+str(https)+"n") f.write("Duration:"+duration+"n") f.write("Percent:"+str(percent)+"n") f.write("Time:"+str(time)+"n") print("第{}条数据写入完毕!".format(str(i+1))) i+=1
源代码
import requests,xml.etree.ElementTree as ET Arguments={ "https":input("是否支持HTTPS,0,不限;1,HTTPS代理,请输入:"), "type":input("代理类型,0,不限;1,透明代理;2,匿名代理;3,高匿代理,请输入:"), "format":input("返回格式,text,文本;json,JSON;xml,XML,请输入:"), "token":你的token } if Arguments["format"]=="json": Response=requests.get("https://api.newday.me/proxy/extract",Arguments).json() Data=Response["data"]["list"] Datum=[] for i in range(len(Data)): Datum.append(Data[i]) for i in range(len(Data)): Data=Datum[i] with open("./Proxys/"+str(i)+".txt","w") as f: f.write("ID:"+str(i)+"n") f.write("Address:"+Data["ip"]+"n") f.write("Port:"+str(Data["port"])+"n") f.write("Type:"+str(Data["type"])+"n") f.write("Https:"+str(Data["https"])+"n") f.write("Duration:"+Data["duration"]+"n") f.write("Percent:"+str(Data["percent"])+"n") f.write("Time:"+str(Data["time"])+"n") print("第{}条数据写入完毕!".format(str(i+1))) elif Arguments["format"]=="text": Response=requests.get("https://api.newday.me/proxy/extract",Arguments).text Data=" ".join(Response.split()) Datum=Data.split(" ") for i in range(len(Datum)): a=Datum[i] b=a.split(":") for i in range(len(b)): with open("./Proxys/"+str(i)+".txt","w") as f: f.write("Address:"+b[i]+"n") f.write("Port:"+b[i]+"n") print("第{}条数据写入完毕!".format(str(i+1))) elif Arguments["format"]=="xml": Response=requests.get("https://api.newday.me/proxy/extract",Arguments).text root=ET.fromstring(Response) Data=[] i=0 for iterm in root.iterfind("data/list/item"): Data.append(iterm) for iterm in Data: ip=iterm.findtext("ip") port=iterm.findtext("port") type=iterm.findtext("type") https=iterm.findtext("https") duration=iterm.findtext("duration") percent=iterm.findtext("percent") time=iterm.findtext("time") with open("./Proxys/"+str(i)+".txt","w") as f: f.write("ID:"+str(i)+"n") f.write("Address:"+ip+"n") f.write("Port:"+str(port)+"n") f.write("Type:"+str(type)+"n") f.write("Https:"+str(https)+"n") f.write("Duration:"+duration+"n") f.write("Percent:"+str(percent)+"n") f.write("Time:"+str(time)+"n") print("第{}条数据写入完毕!".format(str(i+1))) i+=1
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算