|
发表于 2023-5-5 11:32:26
|
显示全部楼层
您在使用Pyppeteer时遇到了代理问题。首先,确保您的代理服务器是可用的,并且已正确配置。根据您的代码,这里有一些建议和更改:
1. 请确保HEADLESS变量已定义。如果你没有定义这个变量,你可以在代码中直接使用 headless=True 。
2. 考虑添加一个 await page.waitFor(1000) 在 await page.goto(URL, {'timeout': 20000}) 之后,让页面有足够的时间加载。注意,这里的 1000 表示等待1秒,您可以根据需要调整这个值。
3. 您可以尝试将代理类型从 https 更改为 http ,以检查是否是代理类型导致的问题。
修改后的代码如下:
- async def load(URL,proxy):
- headers={}
- browser = await pyppeteer.launch(headless=True, ignoreDefaultArgs=['--enable-automation'], args=['--proxy-server=http://'+proxy])
- page = await browser.newPage()
- await page.setExtraHTTPHeaders({"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3542.0 Safari/537.36'})
- try:
- await page.goto(URL, {'timeout': 20000}) # 加载URL
- await page.waitFor(1000) # 等待页面加载
- html = await page.content() # 获取tab对象的HTML内容
- soup = BeautifulSoup(html, 'lxml')
- except Exception as e:
- print(f"Error occurred while loading page: {e}")
- soup = None
- return soup
复制代码
如果问题仍然存在,请检查以下内容:
· 代理是否需要身份验证?如果需要,您可能需要提供用户名和密码。
· 检查代理IP和端口是否正确。
· 尝试使用不同的代理服务器,以确定问题是否特定于某个代理。 |
|