Python成長之路 urllib庫

2021-09-19 04:42:34 字數 2698 閱讀 4520

模擬瀏覽器傳送請求的庫,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 去二者所有的好友有...