爬蟲基本流程:
1) 發(fā)起請求:
通過HTTP庫向目標(biāo)站點(diǎn)發(fā)起請求赴蝇,即發(fā)送request(請求可以包含額外的headers等信息)等待服務(wù)器響應(yīng)。
2) 獲取響應(yīng)內(nèi)容:
得到Response,得到的類型可能有HTML,Json字符串,二進(jìn)制數(shù)據(jù)(如圖片視頻)等類型乳附。
3) 解析內(nèi)容:
對HTML:通過正則表達(dá)式,網(wǎng)頁解析庫
對Json:通過轉(zhuǎn)為Json對象
圖片/視頻:二進(jìn)制數(shù)據(jù)
4)保存數(shù)據(jù)
以各種形式存到數(shù)據(jù)庫
HTTP Response包含的:
1)狀態(tài)碼:
200:請求成功
300:轉(zhuǎn)其它網(wǎng)址
400:連接出錯(cuò)
500:服務(wù)器出錯(cuò)
2)響應(yīng)頭:
內(nèi)容類型
內(nèi)容長度
服務(wù)器信息
設(shè)置Cookie命令
3)響應(yīng)體
網(wǎng)頁HTML
圖片
二進(jìn)制數(shù)據(jù)
抓取的信息
1) HTML信息汹想,json信息
2)圖片/視頻:二進(jìn)制保存
3) 其它
解析方式
1)直接處理(split去空格)
2)Json解析
3)正則表達(dá)式
4) BeautifulSoup
5) Pyquery
6) XPath
解決JavaScript渲染的問題
1)分析Ajax請求:
找到數(shù)據(jù)接口追葡,直接請求json數(shù)據(jù)并解析腺律。
2)Selenium模擬瀏覽器
from selenium import webdriver
driver = webdriver.Chrome()
對driver進(jìn)行操作(對driver.page_source進(jìn)行操作)