Ubuntu 下 无界面环境 多进程/多线程 使用DrissionPage

使用wget “https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb” -O chrome.deb 安装chrome

# !/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: JHC000abc@gmail.com
@file: dp.py
@time: 2025/2/20 20:22 
@desc:

wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O chrome.deb
co.set_argument('--no-sandbox')
"""
from DrissionPage import WebPage, ChromiumOptions, SessionOptions


class DrissionPageDemo(object):
    """

    """

    def __init__(self):
        """

        """
        self.page = None

    def get_page(self, ua=None, cookies=None, incognito=True, time_out=60, headless=True, port=9225, proxy=None):
        """

        :param ua:
        :param cookies:
        :param incognito:
        :param time_out:
        :param headless:
        :return:
        """
        if not self.page:
            co = ChromiumOptions()
            so = SessionOptions()
            if cookies:
                so.set_cookies(cookies)
            if not ua:
                ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"
            co.set_user_agent(user_agent=ua)
            co.set_argument('--no-sandbox')
            co.set_argument('--headless=new')
            co.incognito(incognito)
            co.set_browser_path(r"/usr/bin/google-chrome-stable")
            co.headless(True)
            co.set_argument('--guest')
            co.ignore_certificate_errors(incognito)
            co.mute(True)
            # co.set_local_port(port)
            co.auto_port(scope=(port, port + 50))
            if proxy is not None:
                print("proxy:{}".format(proxy))
                co.set_proxy(proxy)
            # co.set_proxy("http://127.0.0.1:7890")

            co.set_timeouts(page_load=time_out)
            self.page = WebPage(chromium_options=co, session_or_options=so)
        return self.page

    def process(self, url, port=9225, proxy=None):
        """

        :param url:
        :return:
        """
        self.get_page(port=port, proxy=proxy)
        self.page.get(url, retry=3, interval=3)
        self.page.wait(5)
        html = self.page.html
        self.page.quit()
        del self.page
        # os.system("pkill -f chrome")
        print("html = ", html)
        return html


if __name__ == '__main__':
    page = DrissionPageDemo()
    url = "https://www.binance.com/en/support/announcement/8665b792cf804a57bb01b6ea11772746"

    page.process(url)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值