爬蟲基礎
什麼是爬蟲?
爬蟲是通過程式模擬瀏覽器上網,從網上獲取資料的過程.
爬蟲的分類:
通用爬蟲:爬取一整個頁面的資料.
聚焦爬蟲:爬取頁面中指定的區域性資料
增量式爬蟲:檢測**中資料更新的情況,爬取的是**中最新更新出來的資料.
什麼是反爬機制?
**製作時設定的一系列阻止爬蟲程式進行的阻礙,就是反爬機制,反爬機制針對的是爬蟲**.
什麼是反反爬機制?
解決反爬機制所使用的策略,反反爬機制針對的是**.
第乙個反爬機制:robots.txt協議
requests模組的應用
requests:
功能強大,操作簡單編碼流程:(可以理解成去網頁查詢東西一樣)1.獲取url(找到對應的**)2.傳送請求(回車)
3.獲取響應資料(頁面返回給你的資料)
4.持久化儲存(將頁面返回給你的資料儲存到指定位置)
例如:爬取搜狗首頁原始碼資料
import爬取肯德基所有上海餐廳的位置requests
msg=input('
請輸入你要搜尋的內容:')
url = '
'#引數從網頁中的form_data中複製過來即可
params=
headers =
response=requests.get(url=url,headers=headers,params=params)
page_text=response.text
print(page_text)
user-agent: 請求載體的身份標識
ua檢測:門戶**的伺服器會檢測每乙個請求傳送過來的ua,如果檢測到是爬蟲程式,則請求傳送失敗.
ua偽裝:
即在**中加入user-agent即可.
importrequests
#爬取肯德基所有上海位置的資訊
url='
'for i in range(1,5):
#data中的資料是從**中的form data中複製過來的
data=
headers=
#判斷請求方式
response=requests.post(url=url,data=data,headers=headers)
page_info=response.json()
file=open('
./kfc.txt
','a+
',encoding='
utf-8')
#儲存資料
爬取豆瓣電影的電影詳情資料
import動態載入的頁面資料分析:requests
url = '
'headers=
params=
#判斷請求方式
response=requests.get(url=url,params=params,headers=headers)
page_text=response.json()
1.我們通過請求發現,所有的企業資料都是通過動態載入出來的
2.通過抓包工具不過動態載入資料對應的資料報
4.通過分析每一家詳情頁的url,所有的詳情頁的url的網域名稱都是相同的,只是id不同
5.在分析詳情頁中的資料都是通過動態載入出來的,所以這裡還是需要抓包工具來對資料進行捕獲.
6.可以通過固定的url位址和不同的id進行拼接成企業詳情頁對應的url.
7.通過對url進行傳送請求就可以獲取到企業相關的資料了.
爬取藥監總局相關的資料
importurllib(個人感覺只要返回的形式是2進製流,他都可以返回)requests
url='
itownet/portalaction.do?method=getxkzslist
'headers=
for i in range(1,330):
data=
response=requests.post(url=url,headers=headers,data=data)
page_info=response.json()
page_list=
for one_info in page_info['
list']:
detail_id=one_info['id'
] detail_url='
itownet/portalaction.do?method=getxkzsbyid
'data=
detail_info=requests.post(url=detail_url,headers=headers,data=data).json()
fp=open('
./hzp.txt
','a+
',encoding='
utf-8')
for one_hzp in
page_list:
fp.write(one_hzp[
'epsname
']+'
'+one_hzp['
businessperson
']+'\n'
) fp.close()
from urllib importhttp協議和https協議什麼是http協議:客戶端和服務端進行資料互動的形式request
url='
'response=request.urlretrieve(url=url,filename='
./曉.jpg
')
什麼是https協議: 安全的http協議,對傳輸的資料進行加密
對稱秘鑰加密(有弊端): 把秘鑰和資料一起傳送過去
非對稱秘鑰加密(有弊端): 服務端先傳送秘鑰,然後客戶端按照秘鑰形式進行加密,傳送過去之後再通過秘鑰進行解密
證書秘鑰加密(現在普遍應用):服務端先將公開秘鑰傳送給乙個權威的認證機構,認證通過之後給秘鑰做標識,然後拿到權威的證書,校驗通過之後,客戶端通過證書進行加密,服務端通過證書進行解密.
第一章 初識爬蟲
1 爬蟲的定義 可以自動抓取全球資訊網上資訊的指令碼或程式。2 爬蟲可以解決的問題 1 解決冷啟動的問題。2 搜尋引擎的根基。做搜尋引擎,必須使用爬蟲。3 幫助機器學習建立知識圖譜。機器學習最終的是訓練集。訓練集可以靠爬蟲爬去。4 可以製作比較軟體。1 搜尋引擎定義 自動從網際網路蒐集資訊,經過一定...
python網路爬蟲(第一章)
內容來自於o reilly 人民郵電出版社 的 python網路爬蟲權威指南 此部落格僅用於記錄學習,方便以後使用 目前本系列文章 python網路爬蟲筆記 更新情況 第一章 本文 第二章 python網路爬蟲 第二章 簡單例項 python網路爬蟲 簡單例項 print title 1 urlli...
python爬蟲學習 第一章 爬蟲基礎
通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。比如 電商願意被比價 或者購物資訊 爬取資訊,因為可以為他們的商品帶來更多的流量 而不願意被同行爬取 資訊,或者產品資訊 但是很多電商又會去爬取同行的商品資訊。如何解決這個矛盾?反爬機制 門戶 可以通過制定相應的策略或者技術手段,防止...