The website is the API
Reqests
庫
自動爬取html頁面,自動提交相關請求
html
Requests: HTTP for Humans™ — Requests 2.21.0 documentation
要學會看官方文檔python
r = requests.get(url) #這裏經過get方法構造了一個向服務器請求資源的Request對象 #返回的是response對象
Beautful soup
對web頁面進行解析web
網絡爬蟲,盜亦有道
robots協議中對於網絡爬蟲的相關標準規定
網絡鏈接並不必定是成立的,對於異常狀況的處理很是重要
服務器
#若是狀態碼不是200,則產生異常 r.raise_for_status() ................................ #通用爬蟲框架 import requests def getHTMLText(url): try: r = requests.get(url, timeout = 30) r.raise_for_status() #異常處理 r.encoding = r.apparent_encoding return r.text except: return "Error" if __name__ == "__main__": url = "http://www.baidu.com" print(getHTMLText(url))
注意get與post的區別
網絡
python數據類型,字典dict
使用{} :
的一系列鍵值對app
robots協議
網站告知爬蟲那些頁面能夠抓取,那些不能
網站根目錄下的robot.txt文件框架
爬蟲的header修改post
url = "https://www.amazon.cn/dp/B078FFX8B6" kv = {'User-agent' : 'Mozilla/5.0'} r = requests.get(url, headers = kv)
import requests path = "/Users/apple/Pictures/a.jpg" url = "http://img0.dili360.com/ga/M01/48/E0/wKgBzFmyTcaACuVKACZ-qAthuNY888.tub.jpg@!rw9" r = requests.get(url) with open(path, "wb") as f: f.write(r.content) f.close()