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