首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyppeteer在代理后面安装

pyppeteer在代理后面安装
EN

Stack Overflow用户
提问于 2021-05-12 02:48:03
回答 2查看 896关注 0票数 0

我是公司代理人的幕后黑手。

我可以通过设置https_proxy=http://myproxy:port来让pip工作,这样我就可以安装pyppeteer了。

但不管我试过什么-我都不能让雕刻机下载铬。我运行pyppeteer-install,,它只是说下载铬,但没有任何东西放在%appdata% pyppeteer位置。除了手动下载铬并把它放在正确的位置之外,还有什么方法可以修复它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-15 14:16:12

基于,但使用urllib3.ProxyManager代替urllib3.PoolManager

代码语言:javascript
复制
from io import BytesIO
import urllib3

from tqdm import tqdm
from pyppeteer import chromium_downloader  

def download_zip(url: str) -> BytesIO:
        """Download data with proxy from url."""
        print('Starting Chromium download. Download may take a few minutes.')
    
        with urllib3.ProxyManager(proxy_url='http://proxy-ip:port') as http:
            # Get data from url.
            # set preload_content=False means using stream later.
            r = http.request('GET', url, preload_content=False)
            if r.status >= 400:
                raise OSError(f'Chromium downloadable not found at {url}: Received {r.data.decode()}.\n')
    
            # 10 * 1024
            _data = BytesIO()
            try:
                total_length = int(r.headers['content-length'])
            except (KeyError, ValueError, AttributeError):
                total_length = 0
    
            process_bar = tqdm(total=total_length, unit_scale=True, unit='b')
            for chunk in r.stream(10240):
                _data.write(chunk)
                process_bar.update(len(chunk))
            process_bar.close()
    
        print('Chromium download done.')
        return _data
    
    
    def download_chromium() -> None:
        """Download and extract chromium."""
        chromium_downloader.extract_zip(download_zip(chromium_downloader.get_url()), chromium_downloader.DOWNLOADS_FOLDER / chromium_downloader.REVISION)
        print(f'Chrome executable path: {str(chromium_downloader.chromium_executable())}')

只需在程序中调用download_chromium()

Rem:别忘了用你的公司代理来代替http://proxy-ip:port

票数 0
EN

Stack Overflow用户

发布于 2021-05-13 22:57:53

Pyppeteer正在使用urllib3进行下载,而urllib3没有从环境变量中获得配置。

您可以手动下载它,然后指定一个自定义位置:

代码语言:javascript
复制
from pyppeteer import launch

browser = await launch(executablePath='<path>')

参考资料:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67496696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档