Python-線程池爬取任務(wù)

如果你對(duì)美食無(wú)法抵御的話,那么請(qǐng)執(zhí)行一下代碼吧凡涩!海量美食---家常菜

1.多任務(wù)線程池進(jìn)行爬取數(shù)據(jù),高效率完成
2.創(chuàng)建線程池將url和執(zhí)行的函數(shù)名提交也就是pool.submit(函數(shù)名,url)
3.使用xpath進(jìn)行數(shù)據(jù)的獲取
4.存儲(chǔ)數(shù)據(jù)為json文件,存在本地

from concurrent.futures import ThreadPoolExecutor
import requests
from requests import exceptions
from lxml import etree
import json
import threading
#導(dǎo)入線程池模塊


def crawlPageDate(url,**kwargs):
    print(url,**kwargs)

    # fullurl = 'https://www.meishij.net/chufang/diy/jiangchangcaipu/?&page=1' + str(pagenum)

    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
    }

    try:
        response = requests.get(url,headers=headers)
        if response.status_code == 200:
            print('請(qǐng)求成功')
            html =response.text
            #將獲取的頁(yè)面源代碼放入數(shù)據(jù)隊(duì)列

            return html,200



    except exceptions.HTTPError as err:
        print(err)
    except exceptions.ConnectTimeout as err:
        print(err)
    except exceptions.RequestException as err:
        print(err)

    return None,404




def done(futures):
    # print('123')
    print(futures)

    html,status = futures.result()
    print(status)
    # 解析數(shù)據(jù),實(shí)例化一個(gè)xpath對(duì)象
    if html:
        x_html = etree.HTML(html)
        caipu_list = x_html.xpath('//div[@class="listtyle1"]')
        for cai_div in caipu_list:
            # 封面圖
            item = {}
            item['coverImage'] = cai_div.xpath('//img[@class="img"]/@src')[0]
            item['type'] = cai_div.xpath('.//a/strong[@class="gx"]/span/text()')

            if len(item['type']) > 0:
                item['type'] = item['type'][0]
            else:
                item['type'] = '暫無(wú)'

            item['title'] = cai_div.xpath('.//div[@class="c1"]/strong/text()')[0]
            print(item)

            lock.acquire()
            with open('cai.json', 'a') as file:
                json_str = json.dumps(item, ensure_ascii=False) + '\n'
                file.write(json_str)
            lock.release()

if __name__ == '__main__':
    #創(chuàng)建線程池
    pool = ThreadPoolExecutor(max_workers=1889999999999999999999999999)
    for page in range(1,57):
        #向線程池中提交任務(wù)
        '''
        fn:要執(zhí)行的任務(wù)蹋偏,*args:要傳遞的參數(shù),**kwargs要傳遞的多個(gè)參數(shù):
        '''
        url = 'https://www.meishij.net/chufang/diy/jiangchangcaipu/?&page=' + str(page)
        result = pool.submit(crawlPageDate,url)
        #callback里面要添加方法名稱(chēng)
        result.add_done_callback(done)


    lock = threading.Lock()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末至壤,一起剝皮案震驚了整個(gè)濱河市威始,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌像街,老刑警劉巖黎棠,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異宅广,居然都是意外死亡葫掉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)跟狱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俭厚,“玉大人,你說(shuō)我怎么就攤上這事驶臊∨布罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵关翎,是天一觀的道長(zhǎng)扛门。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纵寝,這世上最難降的妖魔是什么论寨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮爽茴,結(jié)果婚禮上葬凳,老公的妹妹穿的比我還像新娘。我一直安慰自己室奏,他們只是感情好火焰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著胧沫,像睡著了一般昌简。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绒怨,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天纯赎,我揣著相機(jī)與錄音,去河邊找鬼南蹂。 笑死址否,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播佑附,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼樊诺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了音同?” 一聲冷哼從身側(cè)響起词爬,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎权均,沒(méi)想到半個(gè)月后顿膨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叽赊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年恋沃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片必指。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡囊咏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塔橡,到底是詐尸還是另有隱情梅割,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布葛家,位于F島的核電站户辞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏癞谒。R本人自食惡果不足惜底燎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弹砚。 院中可真熱鬧双仍,春花似錦、人聲如沸迅栅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)读存。三九已至,卻和暖如春呕屎,著一層夾襖步出監(jiān)牢的瞬間让簿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工秀睛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尔当,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像椭迎,于是被迫代替她去往敵國(guó)和親锐帜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容