必知知識點html
-常見請求頭python
User-Agent | 瀏覽器的身份標識字符串 |
Content-Type | 請求體的MIME類型 (用於POST和PUT請求中) |
-常見響應頭web
Status | 通用網關接口的響應頭字段,用來講明當前HTTP鏈接的響應狀態。 |
-https協議的加密方式json
對稱祕鑰(容易被攔截)瀏覽器
非對稱祕鑰(模擬服務器響應)服務器
證書認證(第三方機構認證的,通訊雙方都承認)cookie
requests模塊:requests模塊是python中原生的基於網絡請求的模塊,其主要做用是用來模擬瀏覽器發起請求。功能強大,用法簡介,在爬蟲領域佔據很重要的地位。網絡
使用requests:post
自動處理url編碼編碼
自動處理post請求參數
簡化cookie和代理操做
使用流程:
指定url
基於requests模塊發起請求
獲取響應對象中的數據值
持久化存儲
實際案例:
# 需求,爬取搜狗指定詞條搜索後的頁面
import requests url = "http://www.sogou.com/web" wd = input('enter a word:') param = { 'query':wd } response = requests.get(url=url,params=param) page_text = response.content fileName = wd+'.html' with open(fileName,'wb') as f: f.write(page_text) print('over')
# 豆瓣喜劇電影排行
import requests url = 'https://movie.douban.com/j/chart/top_list' headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36" } parma = { "type": "24", "interval_id": "100:90", "action": "", "start": "1", "limit": "20", } response_obj = requests.get(url=url,headers=headers,params=parma).json() print(response_obj)
# 爬取肯德基地址
import requests import json url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' headers = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36" } f = open('KFCaddr.json','w',encoding='utf-8') for i in range(1,8): data = { "cname": "", "pid": "", "keyword": "北京", "pageIndex": str(i), "pageSize": "10", } obj_json = requests.post(url=url,headers=headers,data=data).json()['Table1'] json.dump(obj_json,f,ensure_ascii=False) f.close()