使用特定的URL和脚本构建代理旋转器

在4周末工作

我正在努力构建具有结构化为不同url的现有代码的代理旋转器。

下面的代码示例中提供了我想要的URL。我试图让提供的脚本调用所需的URL,并在代理类型为“ HTTPS”时获取所有的“ IP:PORT”(当前脚本限制为十个)。
可以在xpath或bs4中完成。我更喜欢bs4。

我理解逻辑,但是在如何构造它上却失败了。首先,我尝试剥离字符串并尝试调用特定的td元素,但是它不起作用。

#URLs I want 
url_list = ['http://spys.one/free-proxy-list/US/','http://spys.one/free-proxy-list/US/1/']

#code I have 
 from lxml.html import fromstring
 import requests
 from itertools import cycle
 import traceback

 def get_proxies():
 url = 'https://free-proxy-list.net/'
 response = requests.get(url)
 parser = fromstring(response.text)
 proxies = set()
 for i in parser.xpath('//tbody/tr')[:10]:
     if i.xpath('.//td[7][contains(text(),"yes")]'):
        proxy = ":".join([i.xpath('.//td[1]/text()')[0], i.xpath('.//td[2]/text()')[0]])
        proxies.add(proxy)
return proxies

proxies = get_proxies()
proxy_pool = cycle(proxies)
proxy = next(proxy_pool)
response = requests.get(url,proxies={"http": proxy, "https": proxy})

我希望了解提供的代码是如何针对2个所需的URL构造的,当代理类型为HTTPS时返回所有IP:PORT号

QHarr

一种方法是在循环中发出特定于端口的POST请求。您可以修改以添加到一个最终列表中。端点已经是https专用的。

import requests
from bs4 import BeautifulSoup as bs

def get_proxies(number, port, p):
    r = requests.post('http://spys.one/en/https-ssl-proxy/', data = {'xpp': 5, 'xf4': number})
    proxies = [':'.join([str(i),port]) for i in p.findall(r.text)]
    return proxies

ports = ['3128', '8080', '80']
p = re.compile(r'spy14>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})<script')
proxies = []

for number, port in enumerate(ports,1):
    proxies+=get_proxies(number, port, p)

print(proxies)

结果示例:

在此处输入图片说明


针对特定国家/地区:

import requests
from bs4 import BeautifulSoup as bs

def get_proxies(number, port, p, country):
    r = requests.post('http://spys.one/en/https-ssl-proxy/',  data = {'xpp': 5, 'xf4': number})
    soup = bs(r.content, 'lxml')
    proxies = [':'.join([p.findall(i.text)[0], port]) for i in soup.select('table table tr:has(.spy14:contains("' + country + '")) td:has(script) .spy14')]
    return proxies

ports = ['3128', '8080', '80']
p = re.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})document')
proxies = []

for number, port in enumerate(ports,1):
    proxies+=get_proxies(number, port, p, 'United States')

print(proxies)

对于您所说的内容,我将引用我的原始答案:

from bs4 import BeautifulSoup as bs
import requests

def get_proxies(): 
    r = requests.get('https://free-proxy-list.net/')
    soup = bs(r.content, 'lxml')
    proxies = {tr.td.text + ':' + tr.td.next_sibling.text for tr in soup.select('tr:has(.hx:contains(yes))')} 
    return proxies 

get_proxies()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

如何使用流URL和用户代理调用VLC播放器意图

来自分类Dev

在FAKE构建脚本中使用特定版本的MSBuild

来自分类Dev

使用TypeScript和汇总构建迭代器

来自分类Dev

尝试使用aiohttp构建代理

来自分类Linux

使用Selenium和Chrome设置代理服务器

来自分类Dev

我需要像Csi.exe这样的CSharp脚本(.csx)运行器来构建代理计算机

来自分类Dev

使用.NET Flurl / HttpClient设置每个请求的代理(或旋转代理)

来自分类Dev

有关使用Node.js“代理”服务器代理CSS和JS的建议

来自分类Dev

如何使用NGINX反向代理,以及代理上游URL的端口和路径?

来自分类Dev

无法将https代理与重新使用基于asyncio构建的脚本中的同一会话一起使用

来自分类Dev

在Android中使用URI构建器或使用变量创建URL

来自分类Dev

隐藏特定Jquery UI旋转器的旋转器按钮

来自分类Dev

在PostgreSQL和Dynamics 365 Web API之间构建Python3身份验证代理服务器

来自分类Java

如何使用代理设置构建AmazonSQS

来自分类Dev

结合使用AND和OR的C#谓词构建器

来自分类Java

使用Java和Spring MVC构建服务器

来自分类Java

使用委托和枚举的步骤构建器模式?

来自分类Dev

在Laravel雄辩的查询构建器中使用whereIn和where

来自分类Dev

在浏览器和渲染器过程中使用系统代理

来自分类Dev

从文本的起点使用脚本旋转Photoshop文本

来自分类Dev

使用渲染脚本Android旋转位图

来自分类Dev

在Google脚本的Google脚本内的特定工作表上使用onedit()触发器

来自分类Dev

使用AngularJS和php服务器脚本上传文件

来自分类Linux

使用文本和变量构建TXT文件,并使用Bash Shell脚本通过CURL发送变量

来自分类Mysql

如何使用公司和代理商的规范获取mysql的特定数据行

来自分类Dev

Swift中的URL构建器

来自分类Dev

Angular 8和使用代理

来自分类Java

使用3条信息(方案,基本URL和后缀URL)构建URL / URI

来自分类Dev

TeamCity将参数从服务器传递到构建代理

TOP 榜单

热门标签

归档