模擬登錄
模擬登陸是什么鬼?
有些時候,我們在爬取某些網站內容的時候,網站要求登錄后才能操作..,但是處理驗證碼;
模擬登陸的流程
- 對登錄頁面進行請求,從請求的頁面源碼中解析下載驗證碼圖片
- 使用打碼平台對驗證碼進行識別
- 基於登錄按鈕發起一個post請求(處理參數)
模擬登錄的意義和作用
爬取基於某些用戶的用戶信息,獲取cookie
驗證碼識別
三方工具:雲打碼平台--->識別驗證碼種類比較全,無法處理滑動驗證碼.
雲打碼平台
使用流程如下:
#使用流程
1.注冊
2.登錄 - 普通用戶 --->查詢剩余題分(可充值) - 開發者用戶 創建軟件:我的軟件-》添加新軟件(ID,秘鑰) 下載示例代碼:開發文檔-》點此下載:雲打碼接口DLL-》PythonHTTP示例下載
Cookies的應用和處理
cookies : 服務端記錄客戶端的狀態
處理cookies的方式
手動處理 : 不建議,(通用性不強,有些驗證碼動態生成)
自動處理 : 會話對象Session,該對象可以像requests一樣進行網絡請求發送(get,post),session進行的請求發送可以自動攜帶和處理cookie.
使用requests模塊和session對象的區別
session會攜帶參數進行請求,而requests不會.
代理ip
1.為什么使用代理 ?
訪問頻率過高,導致ip被封禁,因此要使用代理.
2.常見代理服務器 有哪些?
快代理 西祠代理 goubanjia
3. 匿名度
- 透明:對方服務器知道你的使用了代理ip,也知道你的真實ip
- 匿名:知道你使用了代理ip但是不知道你的真實ip
- 高匿:什么都不知道
4.請求類型類型
#兩種http和https
- http:只可以發起http請求
- https:只可以發起https的請求
5.應用場景
#代理ip的應用 -->proxies參數 提供字典鍵值對http/https 代理ip地址即可
url = 'http://www.baidu.com/s?wd=ip' page_text = requests.get(url=url,headers=headers,proxies={'http':'117.127.0.202:80'}).text with open('./ip.html','w',encoding='utf-8') as fp: fp.write(page_text) print('完成')
6.為什么要應用代理池?
為了應用更多的代理ip,增加效率