通過urllib或者requests請求后,會(huì)得到一個(gè)HTTPResponse,HTTPResponse擁有狀態(tài)碼、回應(yīng)頭等的信息。
但我們知道,對于一個(gè)頁面,通常是由文字、圖片等信息組成的,這些屬于一個(gè)HTTPResponse的內(nèi)容。
import requests response = requests.get('http://idcbgp.cn') content = str(response.content, encoding='utf-8') # ==> 打印具體內(nèi)容
打印的結(jié)果是一個(gè)很長的字符串,顯得雜亂無章,但其實(shí)它是由結(jié)構(gòu)的,它是一個(gè)標(biāo)準(zhǔn)的HTML頁面,可以從頁面內(nèi)容里面獲取很多有用的數(shù)據(jù)。
網(wǎng)絡(luò)爬蟲是典型的應(yīng)用程序,它的工作原理就是通過不斷的請求互聯(lián)網(wǎng)的頁面,并從回應(yīng)中解析獲取出有用的數(shù)據(jù);數(shù)據(jù)積累后,可以有很多用處。
通過requests獲得網(wǎng)頁的內(nèi)容后,我們可以嘗試使用一些簡單的方法獲取頁面的內(nèi)容。
content_list = content.split('\n') # 分行 len(content_list) # 打印頁面內(nèi)容的行數(shù)
在網(wǎng)頁中,頁面內(nèi)部鏈接其他資源的信息是通過href提供的,通過字符串匹配的方式可以過濾出包含鏈接的行。
for line in content_list: if 'href' in line: print(line.strip())
過濾出來的信息或許有些雜亂,但也包含了一些有用的數(shù)據(jù),我們可以從過濾后的信息中找到鏈接相關(guān)的信息。不過我們過濾的方式比較簡單,通過優(yōu)化過濾的方式可以匹配到更加精準(zhǔn)的數(shù)據(jù)。而爬蟲正是這樣工作的。
請從頁面返回的內(nèi)容中,過濾出鏈接含有www的內(nèi)容。
1. 請?jiān)诒镜鼐帉懘a練習(xí)
2. pip install requests安裝requests庫
參考答案:
response = requests.get('http://idcbgp.cn') content = str(response.content, encoding='utf-8') # ==> 打印具體內(nèi)容 content_list = content.split('\n') # 分行 for line in content_list: if 'href' in line and 'www' in line: print(line.strip())
請驗(yàn)證,完成請求
由于請求次數(shù)過多,請先驗(yàn)證,完成再次請求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)