1. 程式人生 > >Python爬蟲入門——3.1 多程序爬蟲

Python爬蟲入門——3.1 多程序爬蟲

我們上次爬取了鬥破蒼穹全文小說,並儲存到本地TXT檔案,但是下載速度超級慢(不排除我這垃圾i5電腦的原因),我都玩了一盤王者榮耀,還沒有下載完成。j究其原因是我們只是應用了單程序爬取,所以爬取速度大打折扣。鑑於此我們本節介紹多程序爬蟲。

首先簡單介紹一下多程序。通常我們的計算機在執行程式時,他會自己建立一個包含程式碼和狀態的程序。這些程序會通過計算機的一個或者多個CPU執行,不過同一時刻一個CPU只能執行一個程序,但是不同的程序可以在同一條時間線上來回切換,由於計算機超高的執行速度,給我們的感覺就是他在執行多個程式。同理,同一個程序裡的不同執行緒之間也是如此。

首先來介紹多程序的使用方法

from multiprocessing import Pool
pool = Pool(processes = 4)
pool.map(func, urls)

首先要匯入需要使用的庫;第二行用於建立程序池,processes引數設定程序的個數;第三行利用map()函式執行程序,func引數是需要呼叫的def模組,urls為可迭代的URL列表。 

下面為主程式

import requests
import re
from multiprocessing import Pool

def Solution(url):
    '''
    爬取網頁的函式,將爬取到的資料,儲存到TXT文件
    :param url: 傳入的url
    :return: 無返回值
    '''
    res = requests.get(url)
    name_list = re.findall('<h2>(.*?)</h2>',res.text,re.S)
    content_list = re.findall('<span>(.*?)</span>',res.text,re.S)
    for name, content in zip(name_list, content_list):
        return [name.strip(),'  ',content.strip(),'\n']


if __name__ == "__main__":
    urls = ['https://www.qiushibaike.com/text/page/{}/'.format(str(i)) for i in range(1,25)]
    pool = Pool(processes=4)
    with open('F:/exercise/多程序測試.txt', 'a') as f:
        for i in pool.map(Solution, urls):
                f.write(str(i))


1.首先匯入需要用到的庫

2.建立一個def,利用requests獲取網頁資訊,利用正則表示式獲取使用者姓名,發表文章內容,再利用for迴圈,以列表形式返回我們獲取到的內容

3.主函式:建立可迭代的url列表。建立程序池,數量為四個。

     3.1利用  with  建立一個對話。在這個對話裡面,以追加 ‘ a ’ 的方式利用for迴圈將Solution函式返回的內容寫入TXT檔案。如果利用的是 ‘w' 模式,那麼每次新寫入的內容都會覆蓋原先的內容,而追加 ’a' 則是在後面追加需要新增的內容。

你可以更換為‘w’ 模式試一下

--------------------------------------分割線------------------------------------------------------

關於python多程序的相關知識請參考為另一篇博文python 多程序

相關推薦

Python爬蟲入門——3.1 程序爬蟲

我們上次爬取了鬥破蒼穹全文小說,並儲存到本地TXT檔案,但是下載速度超級慢(不排除我這垃圾i5電腦的原因),我都玩了一盤王者榮耀,還沒有下載完成。j究其原因是我們只是應用了單程序爬取,所以爬取速度大打折扣。鑑於此我們本節介紹多程序爬蟲。 首先簡單介紹一下多程序。通常我們的計

python爬蟲入門八:多程序/執行緒 python佇列Queue Python多執行緒(2)——執行緒同步機制 python學習筆記——多程序中共享記憶體Value & Array python多程序 Python多程序 Python 使用multiprocessing 特別耗記

什麼是多執行緒/多程序 引用蟲師的解釋: 計算機程式只不過是磁碟中可執行的,二進位制(或其它型別)的資料。它們只有在被讀取到記憶體中,被作業系統呼叫的時候才開始它們的生命期。 程序(有時被稱為重量級程序)是程式的一次執行。每個程序都有自己的地址空間,記憶體,資料棧以及其它記錄其執行軌跡的輔助資料

Python爬蟲入門——3.2 動態網頁爬蟲

當你搜索百度圖片時(百度圖片),你會發現,當你向下滑動滑鼠,就會自動載入下一頁的圖片資料,但是網頁的URL卻沒有改變。從而你就無法通過一般的構造URL的方法來抓取網頁資料。這是由於網頁使用了非同步載入技術。 非同步載入技術 傳統的網頁如果需要更新網頁資訊就需要重新載入整個

Python爬蟲入門 | 3 爬蟲必備Python知識

Python Python入門 Pyth這是一個適用於小白的Python爬蟲免費教學課程,只有7節,讓零基礎的你初步了解爬蟲,跟著課程內容能自己爬取資源。看著文章,打開電腦動手實踐,平均45分鐘就能學完一節,如果你願意,今天內你就可以邁入爬蟲的大門啦~ 好啦,正式開始我們的第三節課《爬蟲必備Python知識》

python爬蟲系列(3.1-xpath語法的介紹)

一、關於xpath的認識 xpath(XML Path Language)是一門在XML和HTML文件中查詢資訊的語言,可用來在XML和HTML文件中對元素和屬性進行遍歷。 二、xpath的基本語法 1、選擇節點   2、謂語 謂語是用來找出某個特定的

[Python爬蟲]爬蟲例項:爬取PEXELS圖片---修改為程序爬蟲

第二次修改的地址---->爬蟲例項:爬取PEXELS圖片—解決非同步載入問題 在前面的修改中,我們通過使用逆向工程成功解決了非同步載入的問題.但同時還有一個問題:效率問題,受限於網速,假如使用單程序下載圖片時下載的速度沒有佔滿,而使用多個程序時下載速度能夠佔滿的話,那麼多程序爬蟲在

Python 爬蟲入門筆記1(for myself)

一、requests入門 1. requests的基本內容 request()構造一個請求,支撐一下各個方法的基礎方法 requests.request(method,url,**kwargs) 七種方法 method: 請求方式 requests.request(‘GET’,u

python爬蟲入門學習1

1.概念 URL和URI的區別:           URL是統一資源定位符,表示資源的地址(我們說網站的網址就是URL),而URI是統一資源識別符號 ,即用字串來標識某一網際網路資源,因此,URI屬於父類,URL屬於子類 爬蟲:

Python爬蟲入門教程,執行緒採集鬥圖啦表情包!

寫在前面 今天在CSDN部落格,發現好多人寫爬蟲都在爬取一個叫做鬥圖啦的網站,裡面很多表情包,然後瞅了瞅,各種實現方式都有,今天我給你實現一個多執行緒版本的。關鍵技術點 aiohttp ,你可以看一下我前面的文章,然後在學習一下。 https://github.com/wangde

Python爬蟲入門——3.4 模擬登入

宣告:參考資料“ 從零開始學Python網路爬蟲 ”作者:羅攀,蔣仟機械工業出版社 Cookie是網站為了識別使用者身份從而儲存在使用者本地終端上的資料,因此我們可以利用Cookie來模擬登入網站。繼續以豆瓣網為例。 進入豆瓣網https://www.douban.com

python queue和執行緒的爬蟲 與 JoinableQueue和程序爬蟲

多執行緒加queue的爬蟲 和 多程序加JoinableQueue的爬蟲 以自己的csdn部落格為例(捂臉,算不算刷自己部落格訪問量啊,哈哈哈) 這個是多執行緒爬蟲,程式碼比較簡單,有註釋: # -*-coding:utf-8-*- """ ayou """ impor

Python爬蟲入門——3.6 Selenium 爬取淘寶資訊

上一節我們介紹了Selenium工具的使用,本節我們就利用Selenium跟Chrome瀏覽器結合來爬取淘寶相關男士羽絨服商品的資訊,當然你可以用相同的方法來爬取淘寶其他商品的資訊。我們要爬取羽絨服的價格、圖片連線、賣家、賣家地址、收貨人數等資訊,並將其儲存在csv中 fr

Python爬蟲入門——3.3 表單互動 Post

迄今為止,我們爬取的網頁都是未登入狀態下的網頁資訊,當我們想要獲取登入之後的資訊該怎麼做呢?這時我們只需要使用requests庫自帶的post方法即可。使用post的過程比較簡單,我們只需要構造講一個字典,然後利用post上傳到網頁即可。使用方法如下: import req

Python爬蟲入門——2. 1 我的第一個爬蟲程式

         第一個爬蟲程式就寫的簡單一點,我們用requests庫以及BeautifulSoup庫來完成我們的第一個程式(我們所用的python版本為  3.x)。我們爬取豆瓣圖書(https://book.douban.com/top250?start=25)Top1

python程序爬蟲

import re import time from multiprocessing import Pool import requests headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64;

Python爬蟲入門1):綜述

大家好哈,最近博主在學習Python,學習期間也遇到一些問題,獲得了一些經驗,在此將自己的學習系統地整理下來,如果大家有興趣學習爬蟲的話,可以將這些文章作為參考,也歡迎大家一共分享學習經驗。 Python版本:2.7,Python 3請另尋其他博文。 首先爬蟲是什麼?

python爬蟲:編寫程序爬蟲學習筆記

# -*- coding: utf-8 -*- """ Created on Sat Oct 22 21:01:23 2016 @author: hhxsym """ import requests

Python爬蟲入門1】: CentOS環境安裝

簡介 你好,當你開啟這個文件的時候,我知道,你想要的是什麼! Python爬蟲,如何快速的學會Python爬蟲,是你最期待的事情,

學習資料-----python入門到精通100G,包括爬蟲、電子書、各種視訊教程,你不可錯過!

Python 究竟有多火?目前在程式語言排行榜中,Python當之無愧的成為了第一!Python已經逐漸成為所有IT技術的首選語言。幾乎所有IT領域都將Python作為首選程式語言。 Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。它是Googl

Python 學習入門(6)—— 網頁爬蟲

                Python抓取網頁方法,任務是批量下載網站上的檔案。對於一個剛剛入門python的人來說,在很多細節上都有需要注意的地方,以下就分享一下在初學python過程中遇到的問題及解決方法。1、Python抓取網頁import urllib,urllib2url = "http://