導航:首頁 > 編程語言 > python爬蟲干貨

python爬蟲干貨

發布時間:2023-01-02 12:32:24

A. 如何入門 python 爬蟲

入門的話,我的經歷:
1.先用python寫一個爬取網頁源代碼的爬蟲(最先是爬取個人博客,會遇到亂碼問題當時困擾了很久)

2.後來寫了爬取網路圖片的程序,自動下載小說(我愛看小說-_-)(接觸正則表達式)
3.然後網路圖片他那種分頁模式,一般一頁只有20張左右的圖片,分析源代碼,完善爬取程序,不受到限制,一次可以下幾千張(圖片有的是原圖,有的是縮略圖)
4.後來發現程序卡頓,就添加了多線程。
5.然後模擬登陸一些不用驗證碼的網頁(我學校的oj),cookie登陸B站(本來想寫一個搶樓的腳本的,後來發現搶樓的被封號了-_-,就放棄了)

對於使用的庫,python2 與 python3 有點不同,我學的是python3
先用的是urllib.request,後來用requests(第三方庫),在後來接觸Scrapy(也是第三方庫)
現在因為事情多了,就把python放下了,准備寒假寫一些腳本,畢竟python不會有期末考試...

我的個人經歷,希望可以幫到你。

B. python爬蟲需要會什麼

python爬蟲要學什麼?讓我們一起了解一下吧!
1、學習計算機網路協議基礎,了解一個完整的網路請求過程,大致了解網路協議(http協議,tcp-ip協議),了解socket編程,為後期學習爬蟲打下扎實的基礎。
2、學習前端基礎,你需要掌握html、css和JavaScript之間的關系,瀏覽器的載入過程,ajax、json和xml,GET、POST方法。
3、學習python爬蟲相關知識,比如最常使用的爬蟲庫requests,要知道如何用requests發送請求獲取數據。網頁定位和選取,比如beautifulsoup、xpath、css選擇器,數據處理用正則表達式。
4、學習數據存儲知識,比如用python將抓取的數據自動導出Excel或者資料庫中。
拓展:爬蟲python能做什麼
1、收集數據
python爬蟲程序可用於收集數據。這也是最直接和最常用的方法。由於爬蟲程序是一個程序,程序運行得非常快,不會因為重復的事情而感到疲倦,因此使用爬蟲程序獲取大量數據變得非常簡單和快速。
2、調研
比如要調研一家電商公司,想知道他們的商品銷售情況。這家公司聲稱每月銷售額達數億元。如果你使用爬蟲來抓取公司網站上所有產品的銷售情況,那麼你就可以計算出公司的實際總銷售額。
3、刷流量和秒殺
刷流量是python爬蟲的自帶的功能。當一個爬蟲訪問一個網站時,如果爬蟲隱藏得很好,網站無法識別訪問來自爬蟲,那麼它將被視為正常訪問。
除了刷流量外,還可以參與各種秒殺活動,包括但不限於在各種電商網站上搶商品,優惠券,搶機票和火車票。
今天的分享就是這些,希望能幫助到大家!

C. Python爬蟲之九陰真經

用Python 探索 金庸筆下的江湖!

帶你用python看小說, 娛樂 學習兩不誤。

涉及的知識點有:

本文從傳統匹配邏輯分析過渡到機器學習的詞向量,全方位進行文本分析,值得學習,干貨滿滿。( 文末點擊閱讀原文 )

以前金庸小說的網站有很多,但大部分已經無法訪問,但由於很多金庸迷的存在,新站也是源源不斷出現。我近期通過網路找到的一個還可以訪問的金庸小說網址是: ==

不過我已經准備好已經採集完成的數據,大家可以直接下載數據,跳過本章的內容。

數據源下載地址:https://gitcode.net/as604049322/blog_data

下面首先獲取這15部作品的名稱、創作年份和對應的鏈接。從開發者工具可以看到每行的a標簽很多,我們需要的節點的特徵在於後續臨近節點緊接著一個創作日期的字元串:

那麼我們就可以通過遍歷所有的a標簽並判斷其後續一個臨近節點的內容是否符合日期格式,最終完整下載代碼為:

可以按照創作日期排序查看:

名稱創作時間網址 書劍恩仇錄1955年/shujianenchoulu/ 碧血劍1956年/bixuejian/ 射鵰英雄傳1957—1959年/shediaoyingxiongzhuan/ 神鵰俠侶1959—1961年/shendiaoxialv/ 雪山飛狐1959年/xueshanfeihu/ 飛狐外傳1960—1961年/feihuwaizhuan/ 白馬嘯西風1961年/maxiaoxifeng/ 倚天屠龍記1961年/yitiantulongji/ 鴛鴦刀1961年/yuanyang/ 天龍八部1963—1966年/tianlongbabu/ 連城訣1963年/lianchengjue/ 俠客行1965年/xiakexing/ 笑傲江湖1967年/xiaoaojianghu/ 鹿鼎記1969—1972年/ludingji/ 越女劍1970年/yuenvjian/

下面看看章節頁節點的分布情況,以《雪山飛狐》為例:

同時可以看到部分小說的節點出現了倒序的情況,我們需要在識別出倒序時將其正序,完整代碼:

測試一下:

可以看到章節已經順利的正序排列。

小說每一章的詳細頁最後一行的數據我們不需要:

下載每章內容的代碼:

然後我們就可以批量下載全部小說了:

為了更好分析金庸小說,我們還需要採集金庸小說的人物、武功和門派,個人並沒有找到還可以訪問相關數據的網站,於是自行收集整理了相關數據:

相關數據都以如下格式存儲,例如金庸小說的人物:

武功:

數據源下載地址:https://gitcode.net/as604049322/blog_data

定義一個載入小說的方法:

首先我們載入人物數據:

可以預覽一下天龍八部中的人物:

下面我們尋找一下每部小說的主角,統計每個人物的出場次數,顯然次數越多主角光環越強,下面我們看看每部小說,出現次數最多的前十個人物:

上述結果用文本展示了每部小說的前5個主角,但是不夠直觀,下面我用pyecharts的樹圖展示一下:

顯然,《神鵰俠侶》中的楊過和小龍女,《天龍八部》中的蕭(喬)峰,段譽,虛竹,《射鵰英雄傳》的郭靖和黃蓉,《倚天屠龍記》的張無忌和趙敏 都是主角光環最強的角色。

使用上述相同的方法,分析各種武功的出現頻次,首先載入武功數據:

定義計數方法:

每部小說頻次前5的武功可視化:

門派分析


載入數據並獲取每部小說前10的門派:

可視化:

還可以測試一下樹形圖:

綜合統計


下面我們編寫一個函數,輸入一部小說名,可以輸出其最高頻的主角、武功和門派:

例如查看天龍八部:

詞雲圖分析


可以先添加所有的人物、武功和門派作為自定義詞彙:

這里我們僅提取詞長度不小於4的成語、俗語和短語進行分析,以天龍八部這部小說為例:

修改上述代碼,查看《射鵰英雄傳》:

神鵰俠侶:

主角相關劇情詞雲


我們知道《神鵰俠侶》這部小說最重要的主角是楊過和小龍女,我們可能會對於楊過和小龍女之間所發生的故事很感興趣。如果通過程序快速了解呢?

我們考慮把《神鵰俠侶》這部小說每一段中出現楊過及小龍女的段落進行jieba分詞並製作詞雲。

同樣我們只看4個字以上的詞:

這里的每一個詞都能聯想到發生在楊過和小龍女背後的一個故事。

同樣的思路看看郭靖和黃蓉:

最後我們看看天龍八部的三兄弟相關的詞雲:

關系圖分析


金庸小說15部小說中預計出現了1400個以上的角色,下面我們將遍歷小說的每一段,在一段中出現的任意兩個角色,都計數1。最終我們取出現頻次最高的前200個關系對進行可視化。

完整代碼如下:

這次我們生成了HTML文件是為了更方便的查看結果,前200個人物的關系情況如下:

門派關系分析


按照相同的方法分析所有小說的門派關系:

Word2Vec分析


Word2Vec 是一款將詞表徵為實數值向量的高效工具,接下來,我們將使用它來處理這些小說。

gensim 包提供了一個 Python 版的實現。

之前我有使用 gensim 包進行了相似文本的匹配,有興趣可查閱:《批量模糊匹配的三種方法》

首先我要將所有小說的段落分詞後添加到組織到一起(前面的程序可以重啟):

接下面我們使用Word2Vec訓練模型:

我這邊模型訓練耗時15秒,若訓練耗時較長可以把訓練好的模型存到本地:

以後可以直接從本地磁碟讀取模型:

有了模型,我們可以進行一些簡單而有趣的測試。

首先看與喬(蕭)峰相似的角色:

再看看與阿朱相似的角色:

除了角色,我們還可以看看門派:

還可以看看與降龍十八掌相似的武功秘籍:

在 Word2Vec 的模型里,有過「中國-北京=法國-巴黎」的例子,我們看看"段譽"和"段公子"類似於喬峰和什麼的關系呢?

類似的還有:

查看韋小寶相關的關系:

門派武功之間的關系:

之前我們使用 Word2Vec 將每個詞映射到了一個向量空間,因此,我們可以利用這個向量表示的空間,對這些詞進行聚類分析。

首先取出所有角色對應的向量空間:

聚類演算法有很多,這里我們使用基本的Kmeans演算法進行聚類,如果只分成3類,那麼很明顯地可以將眾人分成主角,配角,跑龍套的三類:

我們可以根據每個類別的角色數量的相對大小,判斷該類別的角色是屬於主角,配角還是跑龍套。

下面我們過濾掉眾龍套角色之後,重新聚合成四類:

每次運行結果都不一樣,大家可以調整類別數量繼續測試。從結果可以看到,反派更傾向於被聚合到一起,非正常姓名的人物更傾向於被聚合在一起,主角更傾向於被聚合在一起。

現在我們採用層級聚類的方式,查看人物間的層次關系,這里同樣龍套角色不再參與聚類。

層級聚類調用 scipy.cluster.hierarchy 中層級聚類的包,在此之前先解決matplotlib中文亂碼問題:

接下來調用代碼為:

然後我們可以得到金庸小說宇宙的人物層次關系地圖,結果較長僅展示一部分結果:

當然所有小說混合產生的平行宇宙中,人物關系變得有些混亂,讀者有興趣可以拿單本小說作層次分析,就可以得到較為准確的人物層次關系。

對各種武功作與人物層次聚類相同的操作:

結果較長,僅展示部分結果:

可以看到,比較少的黃色部分明顯是主角比較厲害的武功,而綠色比較多的部分基本都是配角的武功。

最後我們對門派進行層次聚類:

比較少的這一類,基本都是在某幾部小說中出現的主要門派,而大多數門派都是打醬油的。

本文從金庸小說數據的採集,到普通的頻次分析、劇情分析、關系分析,再到使用詞向量空間分析相似關系,最後使用scipy進行所有小說的各種層次聚類。

D. 學習python爬蟲推薦書籍

鏈接:https://pan..com/s/1wMgTx-M-Ea9y1IYn-UTZaA

提取碼:2b6c

課程簡介

畢業不知如何就業?工作效率低經常挨罵?很多次想學編程都沒有學會?

Python 實戰:四周實現爬蟲系統,無需編程基礎,二十八天掌握一項謀生技能。

帶你學到如何從網上批量獲得幾十萬數據,如何處理海量大數據,數據可視化及網站製作。

課程目錄

開始之前,魔力手冊 for 實戰學員預習

第一周:學會爬取網頁信息

第二周:學會爬取大規模數據

第三周:數據統計與分析

第四周:搭建 Django 數據可視化網站

......

E. python爬蟲是幹嘛的

爬蟲技術是一種自動化程序。

爬蟲就是一種可以從網頁上抓取數據信息並保存的自動化程序,它的原理就是模擬瀏覽器發送網路請求,接受請求響應,然後按照一定的規則自動抓取互聯網數據。

搜索引擎通過這些爬蟲從一個網站爬到另一個網站,跟蹤網頁中的鏈接,訪問更多的網頁,這個過程稱為爬行,這些新的網址會被存入資料庫等待搜索。簡而言之,爬蟲就是通過不間斷地訪問互聯網,然後從中獲取你指定的信息並返回給你。而我們的互聯網上,隨時都有無數的爬蟲在爬取數據,並返回給使用者。

爬蟲技術的功能

1、獲取網頁

獲取網頁可以簡單理解為向網頁的伺服器發送網路請求,然後伺服器返回給我們網頁的源代碼,其中通信的底層原理較為復雜,而Python給我們封裝好了urllib庫和requests庫等,這些庫可以讓我們非常簡單的發送各種形式的請求。

2、提取信息

獲取到的網頁源碼內包含了很多信息,想要進提取到我們需要的信息,則需要對源碼還要做進一步篩選。可以選用python中的re庫即通過正則匹配的形式去提取信息,也可以採用BeautifulSoup庫(bs4)等解析源代碼,除了有自動編碼的優勢之外,bs4庫還可以結構化輸出源代碼信息,更易於理解與使用。

3、保存數據

提取到我們需要的有用信息後,需要在Python中把它們保存下來。可以使用通過內置函數open保存為文本數據,也可以用第三方庫保存為其它形式的數據,例如可以通過pandas庫保存為常見的xlsx數據,如果有圖片等非結構化數據還可以通過pymongo庫保存至非結構化資料庫中。

F. Python編程基礎之(五)Scrapy爬蟲框架

經過前面四章的學習,我們已經可以使用Requests庫、Beautiful Soup庫和Re庫,編寫基本的Python爬蟲程序了。那麼這一章就來學習一個專業的網路爬蟲框架--Scrapy。沒錯,是框架,而不是像前面介紹的函數功能庫。

Scrapy是一個快速、功能強大的網路爬蟲框架。

可能大家還不太了解什麼是框架,爬蟲框架其實是實現爬蟲功能的一個軟體結構和功能組件的集合。

簡而言之, Scrapy就是一個爬蟲程序的半成品,可以幫助用戶實現專業的網路爬蟲。

使用Scrapy框架,不需要你編寫大量的代碼,Scrapy已經把大部分工作都做好了,允許你調用幾句代碼便自動生成爬蟲程序,可以節省大量的時間。

當然,框架所生成的代碼基本是一致的,如果遇到一些特定的爬蟲任務時,就不如自己使用Requests庫搭建來的方便了。

PyCharm安裝

測試安裝:

出現框架版本說明安裝成功。

掌握Scrapy爬蟲框架的結構是使用好Scrapy的重中之重!

先上圖:

整個結構可以簡單地概括為: 「5+2」結構和3條數據流

5個主要模塊(及功能):

(1)控制所有模塊之間的數據流。

(2)可以根據條件觸發事件。

(1)根據請求下載網頁。

(1)對所有爬取請求進行調度管理。

(1)解析DOWNLOADER返回的響應--response。

(2)產生爬取項--scraped item。

(3)產生額外的爬取請求--request。

(1)以流水線方式處理SPIDER產生的爬取項。

(2)由一組操作順序組成,類似流水線,每個操作是一個ITEM PIPELINES類型。

(3)清理、檢查和查重爬取項中的HTML數據並將數據存儲到資料庫中。

2個中間鍵:

(1)對Engine、Scheler、Downloader之間進行用戶可配置的控制。

(2)修改、丟棄、新增請求或響應。

(1)對請求和爬取項進行再處理。

(2)修改、丟棄、新增請求或爬取項。

3條數據流:

(1):圖中數字 1-2

1:Engine從Spider處獲得爬取請求--request。

2:Engine將爬取請求轉發給Scheler,用於調度。

(2):圖中數字 3-4-5-6

3:Engine從Scheler處獲得下一個要爬取的請求。

4:Engine將爬取請求通過中間件發送給Downloader。

5:爬取網頁後,Downloader形成響應--response,通過中間件發送給Engine。

6:Engine將收到的響應通過中間件發送給Spider處理。

(3):圖中數字 7-8-9

7:Spider處理響應後產生爬取項--scraped item。

8:Engine將爬取項發送給Item Pipelines。

9:Engine將爬取請求發送給Scheler。

任務處理流程:從Spider的初始爬取請求開始爬取,Engine控制各模塊數據流,不間斷從Scheler處獲得爬取請求,直至請求為空,最後到Item Pipelines存儲數據結束。

作為用戶,只需配置好Scrapy框架的Spider和Item Pipelines,也就是數據流的入口與出口,便可完成一個爬蟲程序的搭建。Scrapy提供了簡單的爬蟲命令語句,幫助用戶一鍵配置剩餘文件,那我們便來看看有哪些好用的命令吧。

Scrapy採用命令行創建和運行爬蟲

PyCharm打開Terminal,啟動Scrapy:

Scrapy基本命令行格式:

具體常用命令如下:

下面用一個例子來學習一下命令的使用:

1.建立一個Scrapy爬蟲工程,在已啟動的Scrapy中繼續輸入:

執行該命令,系統會在PyCharm的工程文件中自動創建一個工程,命名為pythonDemo。

2.產生一個Scrapy爬蟲,以教育部網站為例http://www.moe.gov.cn:

命令生成了一個名為demo的spider,並在Spiders目錄下生成文件demo.py。

命令僅用於生成demo.py文件,該文件也可以手動生成。

觀察一下demo.py文件:

3.配置產生的spider爬蟲,也就是demo.py文件:

4.運行爬蟲,爬取網頁:

如果爬取成功,會發現在pythonDemo下多了一個t20210816_551472.html的文件,我們所爬取的網頁內容都已經寫入該文件了。

以上就是Scrapy框架的簡單使用了。

Request對象表示一個HTTP請求,由Spider生成,由Downloader執行。

Response對象表示一個HTTP響應,由Downloader生成,有Spider處理。

Item對象表示一個從HTML頁面中提取的信息內容,由Spider生成,由Item Pipelines處理。Item類似於字典類型,可以按照字典類型來操作。

G. python爬蟲如何學習

python爬蟲對於非計算機專業人員來說還是有點難的,不建議學。

H. Python爬蟲是什麼

為自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁。

網路爬蟲為一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。

將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索。

(8)python爬蟲干貨擴展閱讀:

網路爬蟲的相關要求規定:

1、由Python標准庫提供了系統管理、網路通信、文本處理、資料庫介面、圖形系統、XML處理等額外的功能。

2、按照網頁內容目錄層次深淺來爬行頁面,處於較淺目錄層次的頁面首先被爬行。 當同一層次中的頁面爬行完畢後,爬蟲再深入下一層繼續爬行。

3、文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合並、Unicode支持,二進制數據處理等功能。

閱讀全文

與python爬蟲干貨相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163