python爬虫获取vpn代理
下面代码是我写的一个vpn获取爬虫,在vscod上运行良好。若有任何错误,可在评论区进行讨论,希望大家一起进步!
·
下面代码是我写的一个vpn获取爬虫,在vscod上运行良好
import lxml
import requests
from bs4 import BeautifulSoup
from lxml import etree
import os
import json
#如果当前目录下不存在'vpn.txt'这个文件,则创建'vpn.txt'这个目录
if os.path.exists('vpn.txt'):
os.mkdir('vpn.txt')
if __name__=='__main__':
#github上一个免费vpn获取项目,可以根据日期自行设置url
url='https://github.com/sharkDoor/vpn-free-nodes/blob/master/node-list/2023-04/19%E6%97%A512%E6%97%B600%E5%88%86.md'
head={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/112.0.0.0 Safari/537.36'
}
#发送请求获取页面内容
response=requests.get(url=url,headers=head)
response.encoding=response.apparent_encoding
page_text=response.text
#创建一个列表存储获取的vpn数据
vpn_list=[]
##页面解析
#创建etree对象
tree=etree.HTML(page_text)
#获取包含所有vpn的列表
tbody_li=tree.xpath('//*[@id="readme"]/article/table/tbody/tr')
#遍历并将vpn数据存入文件中
with open('./vpn.txt','w') as f:
for li in tbody_li:
#对每个vpn的属性进行处理
vpn=li.xpath('./td/text()')
agreement=vpn[0]
Region=vpn[1]
ip=vpn[2]
port=vpn[3]
password=vpn[4]
link=vpn[5]
vpn_list.append(ip+':'+port)#存储vpn到列表中
f.write(ip+':'+port+',')
f.close()
# #2.
# #创建beautifulsoup对象
# soup=BeautifulSoup(page_text,'lxml')
# tbody_li=soup.select('#readme > article > table > tbody >tr ')
# with open('./vpn.txt','w') as f:
# for li in tbody_li:
# #对每个vpn的属性进行处理
# agreement=li.select('td')[0].string
# Region=li.select('td')[1].string
# ip=li.select('td')[2].string
# port=li.select('td')[3].string
# password=li.select('td')[4].string
# link=li.select('td')[5].string
# f.write(ip+':'+port+',')
# f.close()
若有任何错误,可在评论区进行讨论,希望大家一起进步!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)