多進程協(xié)同selenium

代碼如下:

在windows下測試ok,但會存在卡死的問題,應該是windows遺留的問題

from threading import Thread
from multiprocessing import Pool
from bs4 import BeautifulSoup
import re
import time
import requests
import pandas as pd
import json
from selenium import webdriver
from urllib.parse import urljoin, quote

PAGES = 34

KEYWORD = 'yourkeyword'

BASEURL = 'https://search.jd.com/Search?keyword={}&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&bs=1&suggest=2.def.0.V19--12s0&ev=exbrand_%E5%A5%94%E5%AF%8C%EF%BC%88Penfolds%EF%BC%89%5E&stock=1&page={}&s=918&click=0'

def parse(source):
    soup = BeautifulSoup(source, 'lxml')
    lis = soup.find_all('li', 'gl-item')
    print('總共{}個數(shù)據(jù)'.format(len(lis)))
    for li in lis:
        price = li.find('div', 'p-price').get_text()
        title = li.div.find('div', 'p-name').a.get('title')
        href = 'http:' + li.div.find('div', 'p-name').a.get('href')
        sale = li.div.find('div', 'p-commit').get_text()
        shopname = li.div.find('div', 'p-shop').span.a.get('title')

        print(price, title, href, sale, shopname)
        df = pd.DataFrame(data = {
            '價格': price,
            '標題': title,
            '鏈接': href,
            '銷量': sale,
            '店鋪名': shopname
        }, index = ['0'])
        df.to_csv('filename.csv', mode = 'a', index=False, header = False, encoding='utf_8_sig')


def run(url):
    driver = webdriver.Chrome()
    try:
        driver.get(url)
        # 滾動下拉菜單
        for j in range(10):
            driver.execute_script('window.scrollBy(0,1500)')
            time.sleep(1)
    except Exception as e:
        print("err: ", e)
    else:
        parse(driver.page_source)
    finally:
        driver.close()

def main():
    p = Pool(2)

    urls = []
    for page in range(21, PAGES, 2):
        url = BASEURL.format(quote(KEYWORD), page)
        print('url: ', url)
        urls.append(url)

    for url in urls:
        p.apply_async(run, args = (url, ))
    p.close()
    p.join()
    print('task over')


if __name__ == '__main__':
    main()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,674評論 1 32
  • 早上醒來,頭腦清醒很多,情緒也比較穩(wěn)定,果然,做決定之類的事情,真的需要在早上完成。今天我需要做一個大的決定,是否...
    綻蕊向陽閱讀 139評論 0 0
  • 感恩父母養(yǎng)育之恩,感恩天地萬物滋養(yǎng)。感恩愛人的學習進步,感恩孩子放假讓我們可以更多的時間相處。感恩父母對我的幫助只...
    許佳佳閱讀 258評論 0 0
  • 記得那是一條普通的瀝青小道 每次你都從那頭緩緩地推著單車 嘴里默默念著天氣好壞 亦或是今天的心情 我總是從這頭傻傻...
    怪太白閱讀 322評論 0 6
  • 「RIA學習力授權(quán)導師」便簽輸出第3期第6天 今天有兩個拆頁,分別來自第一章和第三章,均為授人以漁的故事。 拆頁七...
    梁楽然閱讀 220評論 0 0

友情鏈接更多精彩內(nèi)容