哈哈哈520 发表于 2023-5-5 10:03:12

pyppeteer代理问题

async def load(URL,proxy):
    headers={}
    browser = await pyppeteer.launch(headless=HEADLESS, ignoreDefaultArgs=['--enable-automation'],args=['--proxy-server=https://'+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.waitForNavigation()
      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
在我为pyppeteer设置了代理之后,总是会出现,网络未连接的错误。但是用自己的ip就可以访问。初步判断不是网络的问题。
也对代理ip进行了验证。发现ip是可以使用的,帮帮孩子吧

isdkz 发表于 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和端口是否正确。
· 尝试使用不同的代理服务器,以确定问题是否特定于某个代理。
页: [1]
查看完整版本: pyppeteer代理问题