为了账号安全,请及时绑定邮箱和手机立即绑定

具有多处理功能的 Selenium 函数

具有多处理功能的 Selenium 函数

ITMISS 2022-05-19 14:16:08
我已经编写了基于 selenium 的函数,我希望它同时解析多个网页。我有我传递给我想要同时抓取的函数的 url 列表,以节省时间。我创建了 scraper.py 文件,我在其中放置了 scraper 函数:def parser_od(url):    price=[]    url_of = url    driver.get(url_of)    try:        price.append(browser.find_element_by_xpath("//*[@id='root']/article/header/div[2]/div[1]/div[2]").text.replace(" ","").replace("zł","").replace(",","."))    except NoSuchElementException:        price.append("")multiprocessing现在我想使用该函数使用库同时从我的 url 解析多个 url :from scraper import *url_list=['https://www.otodom.pl/oferta/2-duze-pokoje-we-wrzeszczu-do-zamieszania-ID42f6s', 'https://www.otodom.pl/oferta/mieszkanie-na-zamknietym-osiedlu-z-ogrodkiem-ID40ZxM', 'https://www.otodom.pl/oferta/zaciszna-nowe-mieszkanie-3-pokoje-0-ID41UaX', 'https://www.otodom.pl/oferta/dwupoziomowe-dewel-mieszkanie-101-m2-lebork-i-p-ID3JEcQ']driver = webdriver.Chrome(executable_path=r"C:\Users\Admin\chromedriver.exe")from multiprocessing import Poolwith Pool(4) as p:    price = p.map(parser_od, url_list)但我收到以下错误:NameError: name 'driver' is not defined这很奇怪,因为 chrome 被打开了。编辑:我需要在运行此刮板时打开浏览器,以便在每次调用此函数时都打开驱动程序。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

只是应该将要处理 ino 4 个相等部分的 url 列表拆分,并driver为每个处理Pool.


def parser_od(urls, thread_index):

driver = webdriver.Chrome(executable_path=r"C:\Users\Admin\chromedriver.exe")

    prices = []

    for i in range(len(urls)):

        url = urls[i]

        if i % 4 == thread_index:


            price=[]

            url_of = url

            driver.get(url_of)

            try:

                price.append(browser.find_element_by_xpath("//*[@id='root']/article/header/div[2]/div[1]/div[2]").text.replace(" ","").replace("zł","").replace(",","."))

            except NoSuchElementException:

                price.append("")

         prices.append(price)

    return prices


from multiprocessing import Pool

with Pool(4) as p:

    price = p.map(lambda x: parser_od(x, url_list), list(range(len(url_list))))


查看完整回答
反对 回复 2022-05-19
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号