python爬蟲 練習

2022-02-20 04:47:25 字數 1541 閱讀 6724

目錄

通用爬蟲

聚焦爬蟲

聚焦爬蟲是根據指定的需求抓取網路上指定的資料。例如:獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的資料值。

增量式爬蟲

通過爬蟲程式監測某**資料更新的情況,以便可以爬取到該**更新出的新資料。

1、發起請求

使用http庫向目標站點發起請求,即傳送乙個request

request包含:請求頭、請求體等

2、獲取響應內容

如果伺服器能正常響應,則會得到乙個response

3、解析內容

解析html資料:正規表示式,第三方解析庫如beautifulsoup,pyquery等

解析json資料:json模組

解析二進位制資料:以b的方式寫入檔案

4、儲存資料

資料庫檔案

判斷資料源頭

動態請求還是靜態請求(豆瓣 肯德基實列)

針對反爬策略做對應的處理

分析頁面間資料的關係 比如下層頁面的資料是由上層資料關聯(藥間總局實列)

注意字元編碼的問題

概念:就是將一組資料中的區域性資料進行提取

作用:來實現聚焦爬蟲

正則bs4

bs4的解析原理

例項化乙個beautifulsoup的物件,並且將即將被解析的頁面原始碼資料載入到該物件中

呼叫beautifulsoup物件中的相關屬性和方法進行標籤定位和資料提取

找標籤 層級選擇器 find

xpath

樹形物件

資料亂碼的問題

解決 調整編碼格式

cook驗證機制

先動態獲取cook在去請求想要的資料

ip驗證問題

使用** 和**池

動態 資料 安全驗證問題

在頁面找

驗證碼問題

效率過低問題

使用執行緒池 協程 **函式

懶載入 屬性不對

框架:就是乙個整合好了各種功能且具有很強通用性的乙個專案模板。

requests,urllib2,urllib

xpath, beautifulsoup

國際網際網路(internet)上有成千百萬臺主機(host),為了區分這些主機,人們給每台主機都分配了乙個專門的「位址」作為標識,稱為ip位址

由於ip位址全是些的數字,為了便於使用者記憶,internet上引進了網域名稱服務系統dns(domain name system)。

robots協議(也稱為爬蟲協議、爬蟲規則、機械人協議等)也就是robots.txt,**通過robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取。

對於每乙個url的請求,排程器都會根據請求得相關資訊加密得到乙個指紋資訊,並且將指紋資訊和set()集合中的指紋資訊進行比對,如果set()集合中已經存在這個資料,就不在將這個request放入佇列中。如果set()集合中沒有存在這個加密後的資料,就將這個request物件放入佇列中,等待被排程。

python簡單爬蟲練習

開始學爬蟲了,記錄一下這兩天的瞎鼓搗 先從最簡單的來,指定乙個url,把整個網頁 抓下來,這裡就拿csdn的主頁實驗 coding utf 8 from urllib import request url html request.urlopen url 注意這裡要以utf 8編碼方式開啟 with...

Python爬蟲練習彙總

目錄 安裝必備爬蟲環境軟體 位址 切換頁面的時候url 發生變動,因此切換頁面時切換第n頁則為n.html 根據頁面資料顯示可以檢視到只有題號 難度 標題 通過率 存有資料,因此只需要對此四項資料進行爬取 檢視html 在每乙個標籤內都是使用巢狀模式,因此可以使用爬蟲進行爬取 匯入相應的包 匯入包 ...

python爬蟲練習(姓名打分)

想為孩子取名,發現乙個姓名打分 可以用爬蟲進行打分 填寫自己喜歡的單字姓名,進行排列組合 my name str 蘇 雪 語 夕 汐 淵 思 源 若 羽 知 兮 暮 逸 君 夫 則 澤 用來儲存生成的姓名 my name 填寫自己的姓 first name 魏 for i in my name st...