python爬需要代理服务器访问的网页什么方案比较好
上网抄了一段代码,代理是用ssr,发现没法抓下来urllib.error.URLError: <urlopen error 远程主机强迫关闭了一个现有的连接。>from urllib import request
from urllib import parse
data = {
'first': 'true',
'pn': 1,
'kd': 'Python'
}
url = "https://网站"
proxy = request.ProxyHandler({'http':'127.0.0.1:1080'})# 设置proxy
opener = request.build_opener(proxy)# 挂载opener
request.install_opener(opener)# 安装opener
data = parse.urlencode(data).encode('utf-8')
page = opener.open(url, data).read()
page = page.decode('utf-8')
路由器上开 嗯哼喵,看起来你的代理服务器出了些问题的样子。我看你这段代码基本上是没有问题的,应该是代理的问题。可能是ssr有些设置不对或者被封了吧。你可以试试换一个别的代理服务器喵,或者直接使用requests库,会更方便一些哦 本帖最后由 Archaeopteryx 于 2023-4-21 22:24 编辑
编辑一下以免误导人。因为不知道你的目标网站是啥所以我只试了百度可以成功连接。主楼里连接错误有可能有别的原因,建议先试试别的网站,排除proxy设置方面的问题。
###########################################
我这里可以运行的。可能是你缺了某些组件,试试
pip install pysocks
pip install -U requests
用urllib写对我来说太硬核了,我觉得只是自己偶然用用的话,用playwright之类比较方便点,一些简单的问题也更直观 本帖最后由 wangyi041228 于 2023-4-21 22:49 编辑
比较常见的是10080端口,是不是抄错了?WinError是概率事件, 大量爬取无法避免,建议while true: try ... break except包起来
另外推荐aiohttp,或者用简单包装的ez-aio。
定义:
get(urls, binary=False, func=None, fdata=None, li=99, forced=True, ssl=False,proxy=None, headers=None, cookies=None):
post略
例子:
urls = ['https://www.baidu.com'] * 100
results = aio.get(urls,proxy=proxy)
https://pypi.org/project/ez-aio/
用requests吧
pip install -U 'requests'
import requests
socks_proxies = dict(http='socks5://user:pass@host:port',
https='socks5://user:pass@host:port')
resp = requests.get('http://web',
proxies=socks_proxies)
print(resp.text) 换个思路,你可以直接在国外的服务器上跑这个程序 代理要加上https,关闭ssl证书验证
—— 来自 S1Fun 糊状物 发表于 2023-4-21 22:10
用urllib写对我来说太硬核了,我觉得只是自己偶然用用的话,用playwright之类比较方便点,一些简单的问题也 ...
搞不来,先用playwright,好处是直接利用了全局代理,不用特意设置proxy参数也能用
缺点是偶尔还是会出现
playwright._impl._api_types.Error: net::ERR_CONNECTION_CLOSED at xxxxx
=========================== logs ===========================
navigating to "xxxxx", waiting until "load" b0207191 发表于 2023-4-22 09:45
搞不来,先用playwright,好处是直接利用了全局代理,不用特意设置proxy参数也能用
缺点是偶尔还是会出 ...
不知道你爬的什么网站, 看错误信息感觉 要么是代理不稳定, 要么触发了对面的反爬保护. b0207191 发表于 2023-4-22 09:45
搞不来,先用playwright,好处是直接利用了全局代理,不用特意设置proxy参数也能用
缺点是偶尔还是会出 ...
忘了说, 你playwright设置个headless=False, 直接显示浏览器, 这种错误直接看页面好了
页:
[1]