模擬瀏覽器傳送請求的庫,python自帶
urllib模組
呼叫的方法
說明urllib.request
urlopen(url)
請求url,並返回請求url所有的內容
urlretrieve(url,path)
請求url,並將url反饋的內容儲存到path路徑下
urllib.parse
quote
url編碼函式,將中文進行轉化為%***
unquote
url解碼函式,將%***轉化為指定字元
urlencode
給乙個字典,將字典拼接為query_string,並且實現了編碼的功能
urllib.request請求後反饋的response
response
呼叫的方法
說明response
read()
讀取相應的內容,內容是位元組型別
geturl()
獲取請求的url
getheaders()
獲取頭部資訊,列表裡面有元素
getcode()
獲取狀態碼
readline()
按行讀取,放回列表,都是位元組型別
get方式
post方式
from urllib import request,parse
url =
""word =
input
(">>>:"
)from_data=
header =
# 偽裝請求頭
request_url = request.request(url=url,headers=header)
# 表單資料處理
from_data = parse.urlencode(from_data)
.encode(
)response = request.urlopen(request_url,data=from_data)
ret = response.read(
).decode(
)print
(ret)
傳送請求的兩種方式
模擬cookie登陸
手動登陸後,通過fidder抓包工具獲取登陸請求的鏈結以及登陸的請求資料
真實的模擬瀏覽器,當傳送完post請求的時候,將cookie儲存到**中
from urllib import request
# 真實的模擬瀏覽器,當傳送完post請求的時候,將cookie儲存到**中 儲存在opener中
# 建立乙個cookiejar物件
cj = cookiejar.cookiejar(
)# 通過cookiejar建立乙個handler
# 根據handler建立乙個opener
opener = request.build_opener(handler)
# 登陸請求的ajax的位址
post_url =
""# 登陸需要的引數
formdata =
# 請求頭資訊
headers =
request_url = request.request(post_url,headers=headers)
response = opener.
open
(request_url)
# 下面就可以爬取登陸之後的頁面資料了
如果可以進行模擬登陸的話,cookie就從登陸中直接獲取,若是模擬登陸不了的話,那麼就在headers中加入登陸後的cookie值進行抓去登陸後的頁面
requests
requests是urllib的乙個封裝
使用requests對對資料進行訪問
安裝:pip install requests用來做什麼:和urllib是同乙個位置
headers = {}
data = {}
get請求
定製頭部
requests.get(url,headers=headers,params=data)
post請求
定製頭部
requests.get(url,headers=headers,data=data)
響應物件
r.text 字串形式檢視響應
r.content 位元組型別檢視響應
e.encoding 檢視或者設定編碼型別
r.status_code 檢視狀態碼
r.headres檢視響應頭部
r.url 檢視所請求的url
r.json() 檢視json格式資料
import requests
#如果碰到會話相關的話題,首先要先建立乙個會話
#往下所有的操作都是通過建立會話後的物件去訪問
s = requests.session(
)post_url =
""headers =
formdata =
res = s.post(url=post_url,headers=headers,data=
format()
)
Python成長之路 字典
字典是python中唯一內建的對映型別。你可以將其想象成書本的目錄,章節名稱代表 key 頁碼則代表 value 書本的目錄本質上是也是字典。使用列表構建包含姓名和 號碼的資料庫 names aa bb cc dd ee ff numbers 123,456,789,0121 131415,1617...
Python成長之路 生成器
了解生成器 我們知道迭代器有兩種 一種是呼叫方法直接放回的 一種是可迭代物件執行iter方法得到的。迭代器的有點是可以節省記憶體。如果在某些情況下,我們也需要節省記憶體,就只能是自己寫,我們自己寫的這個能實現迭代器功能的東西就叫做生成器。生成器的函式 常規函式定義,但是,使用的是yield語句而不是...
python成長之路day08
一 集合關係運算與常用操作 二 檔案操作 關係運算 friends1 friends2 1 取二者的共同好友 交集 res friends1 friends2 print res 2 取二者所有的好友有哪些 並集 res friends1 friends2 print res 3 去二者所有的好友有...