【问题标题】:how to add a proxy to each thread如何为每个线程添加代理
【发布时间】:2021-10-18 13:41:42
【问题描述】:

请告诉我如何为每个线程添加代理,我已经绞尽脑汁整整一个小时我无法理解。视频上作弊的代码,现在代码可以在管理面板中工作可以看到vidos是从一个ip看的,没有添加views,但是每天需要做20kviews

import time
from multiprocessing.pool import Pool

import chromedriver_autoinstaller
from selenium.webdriver import Chrome, ChromeOptions

from loguru import logger

if not os.path.exists('./chromedriver.exe'):
    chromedriver_autoinstaller.install(True)


def run_driver(args: list[str, int]):
    try:
        url = args[0]
        num = args[1]

        chrome_options = ChromeOptions()
        chrome_options.add_argument("--incognito")
        chrome_options.add_argument("--log-level=3")
        chrome_options.add_experimental_option(
            "excludeSwitches", ["enable-logging"])
        chrome_options.add_argument("--headless")

        driver = Chrome(chrome_options=chrome_options)
    
        driver.get(url)
        driver.set_window_size(1280, 720)
        time.sleep(120)
        logger.debug(f'{num} - Закончил! ')
    finally:
        driver.quit()


if __name__ == '__main__':
    main_url = ('https://zen.yandex.ru/media/id/610ec7ba16a13f1ef5409629/scenka-vygnali-iz- 
    podezda-na-moroz-no-nashlis-dobrye-liudi-i-vot-chto-oni-sdelali-6116ec3d6eab3f04de64e704')

    process_count = 50
    views_count = 50000

    # run_driver([main_url, 0])

    args = [(main_url, i + 1) for i in range(views_count)]
    with Pool(process_count) as pool:
        pool.map(run_driver, args)

【问题讨论】:

  • 您可以有一个函数来选择一个“随机”代理并在每次运行时调用该函数。也就是说,我不确定你所做的是否符合道德......

标签: python proxy pool


【解决方案1】:

要将代理添加到驱动程序,您必须使用--proxy-server 参数。这是我的做法:)

chrome_options.add_argument('--proxy-server=%s' % str(proxy))

3 年前,我用我的意大利面条回答了一个类似的问题,同时还有几个人同时回答了。您也可以检查该答案,看看它是否会对您有所帮助 -> Selenium Threads: how to run multi-threaded browser with proxy ( python)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多