欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于python爬蟲模塊urllib庫詳解

 更新時間:2023年07月07日 10:09:06   作者:侯小啾  
這篇文章主要介紹了關(guān)于python爬蟲模塊urllib庫詳解,學(xué)習(xí)爬蟲,最初的操作便是模擬瀏覽器向服務(wù)端發(fā)出請求,這里我們就學(xué)習(xí)使用urlib庫的用法,需要的朋友可以參考下

1.urllib模塊簡介

python2有urllib和urllib2兩種模塊,都用來實現(xiàn)網(wǎng)絡(luò)請求的發(fā)送。python3將urllib和urllib2模塊整合并命名為urllib模塊。urllib模塊有多個子模塊,各有不同的功能:

  • ①urllib.request模塊:用于實現(xiàn)基本的http請求。
  • ②urllib.error模塊:用于異常處理。如在發(fā)送網(wǎng)絡(luò)請求時出現(xiàn)錯誤,用該模塊捕捉并處理。
  • ③urllib.parse模塊:用于解析。
  • ④urllib.robotparser:用于解析robots.txt文件,判斷是否可以爬取網(wǎng)站信息。

2.發(fā)送請求:urlopen()方法

urloprn() 方法由urllib.request模塊提供,以實現(xiàn)基本的http請求,并接受服務(wù)器端返回的響應(yīng)數(shù)據(jù)。

urlopen()語法: urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)

  • url:訪問網(wǎng)站的完整url地址
  • data:默認(rèn)為None,表示請求方式為get請求;如果需要實現(xiàn)post請求,需要字典形式的數(shù)據(jù)作為參數(shù)。
  • timeout:設(shè)置超時,單位為秒。
  • cafile,capath:指定一組HTTPS請求信任的CA證書,cafile指包含單個證書的CA文件,capath指定證書文件的目錄。
  • cadefault:CA證書的默認(rèn)值。
  • context:描述SSL選項的 的實例。

3. 發(fā)送GET請求

代碼示例

import urllib.request    # 導(dǎo)入request子模塊
url = 'https://www.python.org/'
response = urllib.request.urlopen(url=url)  # 發(fā)送網(wǎng)絡(luò)請求
print('響應(yīng)數(shù)據(jù)類型為:', type(response))
print('響應(yīng)狀態(tài)碼為:', response.status)
print('響應(yīng)狀態(tài)碼為:', response.getcode())
print('響應(yīng)頭所有信息為:', response.getheaders())
print('響應(yīng)頭指定信息為:', response.getheader('Accept-Ranges'))
# 讀取HTML代碼并進(jìn)行utf-8解碼
print('Python官網(wǎng)HTML代碼如下:\n', response.read().decode('utf-8'))

輸出結(jié)果如下(部分):

在這里插入圖片描述

  • response是一個<class ‘http.client.HTTPResponse’>對象;
  • 響應(yīng)狀態(tài)碼也稱響應(yīng)碼,也稱狀態(tài)碼,可以通過status屬性查看,也可以通過getcode()方法查看。
  • getheaders()用于查看響應(yīng)頭所有信息
  • getheader()中傳入?yún)?shù),用于查看響應(yīng)頭的指定信息。
  • 關(guān)于請求頭&響應(yīng)頭
  • 當(dāng)你使用http(https)協(xié)議請求一個網(wǎng)站的時候,你的瀏覽器會向?qū)Ψ降姆?wù)器發(fā)送一個http請求,這個請求同樣包含三個部分
    • 請求方法 請求路徑(URL) 請求協(xié)議版本
      例:GET https://www.google.com.hk/ HTTP/1.1
    • 報文主體
    • (POST/GET)參數(shù)

當(dāng)你向?qū)Ψ桨l(fā)送請求后,對方會回應(yīng)你瀏覽器的請求,返回兩個部分:響應(yīng)頭,Body

Body就是返回給你的主體,比如說請求網(wǎng)站返回的html 響應(yīng)頭訊息里包含了服務(wù)器的響應(yīng)訊息,如http版本,壓縮方式,響應(yīng)文件類型,文件編碼等

4.發(fā)送post請求

即在上邊基礎(chǔ)上,在urlopen()函數(shù)中寫入data參數(shù)。

  • post請求會攜帶一些form表單數(shù)據(jù),這個需要復(fù)制過來以字典形式寫入。
    表單數(shù)據(jù)在網(wǎng)頁上點擊F12后,在Fetch/XHR一欄中的Payload中獲取。
    以爬取有道翻譯,翻譯“你好”為例,此時的表單數(shù)據(jù)如下:

i: 你好
from: AUTO
to: AUTO
smartresult: dict
client: fanyideskweb
salt: 16417380413821
sign: 6545acd2d928b39eb5bead9349a2d4ff
lts: 1641738041382
bv: fdac15c78f51b91dabd0a15d9a1b10f5
doctype: json
version: 2.1
keyfrom: fanyi.web
action: FY_BY_REALTlME

代碼示例如下:

import urllib.request
import urllib.parse
import json
# 要進(jìn)行輸入內(nèi)容
key = input("請輸入內(nèi)容:")
data = {
    "i": key,
    "from": "AUTO",
    "to": "AUTO",
    "smartresult": "dict",
    "client": "fanyideskweb",
    "salt": "16374132986488",
    "sign": "dfd139af546a8cd63de0676f446ca2ee",
    "lts": "1637413298648",
    "bv": "03a6a27012b22bc3c7ecc76381772182",
    "doctype": "json",
    "version": "2.1",
    "keyfrom": "fanyi.web",
    "action": "FY_BY_REALTlME",
}
# 字節(jié)流,如果輸入中文,需要處理的
data = urllib.parse.urlencode(data)  # 轉(zhuǎn)為十六進(jìn)制形式
data = bytes(data, encoding='utf8')  # 轉(zhuǎn)為字節(jié)流
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
# 目標(biāo)url發(fā)請求
# {"errorCode":50} ,把_o
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
# 構(gòu)建請求對象
req = urllib.request.Request(url, data=data, headers=headers)
# 發(fā)請求,獲取響應(yīng)對象
res = urllib.request.urlopen(req)
# print(res.getcode())  # 得到響應(yīng)碼,200表示請求成功
html = res.read().decode('utf-8')
# print(type(html))  # <class 'str'>,得到的是json數(shù)據(jù)
# json數(shù)據(jù)轉(zhuǎn)字典
dic = json.loads(html)
result = dic["translateResult"]  # [[{'src': '你好', 'tgt': 'hello'}]]
print(result[0][0]['tgt'])

在這里插入圖片描述

另一個簡單的示例:

import urllib.request    # 導(dǎo)入urllib.request模塊
import urllib.parse      # 導(dǎo)入urllib.parse模塊
url = 'https://www.httpbin.org/post'    # post請求測試地址
# 將表單數(shù)據(jù)轉(zhuǎn)換為bytes類型,并設(shè)置編碼方式為utf-8
print()
data = bytes(urllib.parse.urlencode({'hello': 'python'}), encoding='utf-8')
response = urllib.request.urlopen(url=url, data=data)  # 發(fā)送網(wǎng)絡(luò)請求
print(response.read().decode('utf-8'))    # 讀取HTML代碼并進(jìn)行

在這里插入圖片描述

5. 設(shè)置網(wǎng)絡(luò)超時

urlopen()的timeout參數(shù)用于設(shè)置請求超時,該參數(shù)以秒為單位,表示如果在請求時超出了設(shè)置的時間還沒有得到響應(yīng)時就會拋出異常。

import urllib.request
url = 'https://www.python.org/'   
response = urllib.request.urlopen(url=url, timeout=0.1) # 設(shè)置超時時間為0.1秒
print(response.read().decode('utf-8')) 

因為0.1秒設(shè)置的過快,結(jié)果因超時而產(chǎn)生異常,報錯。

通常根據(jù)網(wǎng)絡(luò)環(huán)境不同,設(shè)置一個合理的時間,如2秒,3秒。

對該網(wǎng)絡(luò)超時異常進(jìn)行捕捉并處理:

import urllib.request  # 導(dǎo)入urllib.request模塊
import urllib.error  # 導(dǎo)入urllib.error模塊
import socket  # 導(dǎo)入socket模塊
url = 'https://www.python.org/'  # 請求地址
try:
    # 發(fā)送網(wǎng)絡(luò)請求,設(shè)置超時時間為0.1秒
    response = urllib.request.urlopen(url=url, timeout=0.1)
    print(response.read().decode('utf-8'))  # 讀取HTML代碼并進(jìn)行utf-8解碼
except urllib.error.URLError as error:  # 處理異常
    if isinstance(error.reason, socket.timeout):  # 判斷異常是否為超時異常
        print('當(dāng)前任務(wù)已超時,即將執(zhí)行下一任務(wù)!')

在這里插入圖片描述

6. 復(fù)雜網(wǎng)絡(luò)請求_urllib.request.Request()

urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

參數(shù)說明:

  • url:訪問網(wǎng)站的完整url地址
  • data:默認(rèn)為None,表示請求方式為get請求;如果需要實現(xiàn)post請求,需要字典形式的數(shù)據(jù)作為參數(shù)。
  • headers:設(shè)置請求頭部信息,字典類型。
  • origin_req_host:用于設(shè)置請求方的host名稱或者IP。
  • unverifiable:用于設(shè)置網(wǎng)頁是否需要驗證,默認(rèn)值為False。
  • method:用于設(shè)置請求方式,如GET,POST。

7.設(shè)置請求頭

7.1get請求示例

url = 'https://www.baidu.com'
# 定義請求頭信息
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
# 創(chuàng)建Request對象
r = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(r)  # 發(fā)送網(wǎng)絡(luò)請求
print(response.read().decode('utf-8'))  # 讀取HTML代碼并進(jìn)行utf-8解碼

在這里插入圖片描述

7.2post請求示例

import urllib.request  # 導(dǎo)入urllib.request模塊
import urllib.parse    # 導(dǎo)入urllib.parse模塊
url = 'https://www.httpbin.org/post'  # 請求地址
# 定義請求頭信息
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}
# 將表單數(shù)據(jù)轉(zhuǎn)換為bytes類型,并設(shè)置編碼方式為utf-8
data = bytes(urllib.parse.urlencode({'hello': 'python'}),encoding='utf-8')
# 創(chuàng)建Request對象
r = urllib.request.Request(url=url,data=data,headers=headers,method='POST')
response = urllib.request.urlopen(r)  # 發(fā)送網(wǎng)絡(luò)請求
print(response.read().decode('utf-8'))  # 讀取HTML代碼并進(jìn)行utf-8解碼

創(chuàng)建出一個Request對象,然后直接調(diào)用urlopen()函數(shù)。 創(chuàng)建Request也被稱為創(chuàng)建請求對象

在這里插入圖片描述

8. Cookies的獲取與設(shè)置

Cookies是服務(wù)器向客戶端返回響應(yīng)數(shù)據(jù)時所留下的標(biāo)記。當(dāng)客戶再次訪問服務(wù)器時會攜帶這個標(biāo)記。一般登錄一個頁面成功后,會在瀏覽器的cookie中保留一些信息,再次訪問時服務(wù)器核對后即可確認(rèn)當(dāng)前用戶登錄過,此時可直接將登錄后的數(shù)據(jù)返回。

import urllib.request
url = "https://www.csdn.net/"
opener = urllib.request.build_opener()  # 獲取opener對象
resp = opener.open(url)
print(resp.read().decode())

因為urlopen()方法不支持代理、cookie等其他的HTTP/GTTPS高級功能,所以這里不用urlopen()發(fā)送請求,而需要創(chuàng)建一個opener對象(這本來是urllib2中的方法)。示例如下。學(xué)習(xí)過程中這里作為了解即可,建議重點研究/使用requests庫。

import urllib.request  # 導(dǎo)入urllib.request模塊
import http.cookiejar  # 導(dǎo)入http.cookiejar子模塊
# 登錄后頁面的請求地址
url = 'xxx'
cookie_file = 'cookie.txt'   # cookie文件
cookie = http.cookiejar.LWPCookieJar()    # 創(chuàng)建LWPCookieJar對象
# 讀取cookie文件內(nèi)容
cookie.load(cookie_file,ignore_expires=True,ignore_discard=True)
# 生成cookie處理器
handler = urllib.request.HTTPCookieProcessor(cookie)
# 創(chuàng)建opener對象
opener = urllib.request.build_opener(handler)
response = opener.open(url)        # 發(fā)送網(wǎng)絡(luò)請求
print(response.read().decode('utf-8'))    # 打印登錄后頁面的html代碼

9.設(shè)置代理IP

import urllib.request  # 導(dǎo)入urllib.request模塊
url= 'xxxxxxxxxxxxxxx'   
# 創(chuàng)建代理IP
proxy_handler = urllib.request.ProxyHandler({
    'https': 'xxxxxxxxxxxxxxxxx'  # 寫入代理IP
})
# 創(chuàng)建opener對象
opener = urllib.request.build_opener(proxy_handler)
response = opener.open(url,timeout=2)       
print(response.read().decode('utf-8'))    

10.異常處理

urllib模塊中的urllib.error子模塊包含了URLError與HTTPError兩個比較重要的異常類。

10.1 URLError

URLError類提供了一個reason屬性,可以通過這個屬性了解錯誤的原因。示例如下:

import urllib.request    # 導(dǎo)入urllib.request模塊
import urllib.error      # 導(dǎo)入urllib.error模塊
try:
    # 向不存在的網(wǎng)絡(luò)地址發(fā)送請求
    response = urllib.request.urlopen('https://www.python.org/1111111111.html')
except urllib.error.URLError as error:    # 捕獲異常信息
    print(error.reason)                    # 打印異常原因

程序運行結(jié)果:

在這里插入圖片描述

10.2HTTPError

HTTPError類是URLError的子類,主要用于處理HTTP請求所出現(xiàn)的一次。此類有以下三個屬性。

  • code :返回HTTP狀態(tài)碼
  • reason 返回錯誤原因
  • headers 返回請求頭
import urllib.request    # 導(dǎo)入urllib.request模塊
import urllib.error      # 導(dǎo)入urllib.error模塊
try:
    # 向不存在的網(wǎng)絡(luò)地址發(fā)送請求
    response = urllib.request.urlopen('https://www.python.org/1111111111.html')
    print(response.status)
except urllib.error.HTTPError as error:    # 捕獲異常信息
    print('狀態(tài)碼為:',error.code)                      # 打印狀態(tài)碼
    print('異常信息為:',error.reason)                  # 打印異常原因
    print('請求頭信息如下:\n',error.headers)           # 打印請求頭

結(jié)果如下(部分):

在這里插入圖片描述

10.3URLError&HTTPError雙重異常捕捉

因為URLError是HTTPError的父類,所以在捕獲異常的時候可以先找子類是否異常,父類的異常應(yīng)當(dāng)寫到子類異常的后面,如果子類捕獲不到,那么可以捕獲父類的異常。 URLError產(chǎn)生的原因主要是

  • 網(wǎng)絡(luò)沒有連接,

  • 服務(wù)器連接失

  • 找不到指定的服務(wù)器。

當(dāng)使用urlopen或 opener.open 不能處理的,服務(wù)器上都對應(yīng)一個響應(yīng)對象,其中包含一個數(shù)字(狀態(tài)碼),如果urlopen不能處理,urlopen會產(chǎn)生一個相應(yīng)的HTTPError對應(yīng)相應(yīng)的狀態(tài)碼,HTTP狀態(tài)碼表示HTTP協(xié)議所返回的響應(yīng)的狀態(tài)碼。

import urllib.request    # 導(dǎo)入urllib.request模塊
import urllib.error      # 導(dǎo)入urllib.error模塊
try:
    response = urllib.request.urlopen('https://www.python.org/',timeout=0.1)
except urllib.error.HTTPError as error:    # HTTPError捕獲異常信息
    print('狀態(tài)碼為:',error.code)                      # 打印狀態(tài)碼
    print('HTTPError異常信息為:',error.reason)         # 打印異常原因
    print('請求頭信息如下:\n',error.headers)           # 打印請求頭
except urllib.error.URLError as error:     # URLError捕獲異常信息
    print('URLError異常信息為:',error.reason) 

這里訪問了一個真實存在的URL,輸出結(jié)果為:

在這里插入圖片描述

11.解析URL

urllin模塊提供了parse子模塊用來解析URL。

11.1 拆分URL

urlparse()方法

parse子模塊提供了urlparse()方法,實現(xiàn)將URL分解成不同部分,語法格式如下:

urllib.parse.urlparse(urlstring,scheme=’’,allow_fragment=True)

  • urlstring:需要拆分的URL,必選參數(shù)。
  • scheme:可選參數(shù),需要設(shè)置的默認(rèn)協(xié)議,默認(rèn)為空字符串,如果要拆分的URL中沒有協(xié)議,可通過該參數(shù)設(shè)置一個默認(rèn)協(xié)議。
  • allow_fragment:可選參數(shù),如果該參數(shù)設(shè)置為False,則表示忽略fragment這部分內(nèi)容,默認(rèn)為True。

示例:

import urllib.parse    #導(dǎo)入urllib.parse模塊
parse_result = urllib.parse.urlparse('https://docs.python.org/3/library/urllib.parse.html')
print(type(parse_result))    # 打印類型
print(parse_result)          # 打印拆分后的結(jié)果

程序運行結(jié)果:

在這里插入圖片描述

用此方法,除了返回ParseResult對象以外,還可以直接獲取ParseResult對象中的每個屬性值:

print('scheme值為:', parse_result.scheme)
print('netloc值為:', parse_result.netloc)
print('path值為:', parse_result.path)
print('params值為:', parse_result.params)
print('query值為:', parse_result.query)
print('fragment值為:', parse_result.fragment)

在這里插入圖片描述

urlsplit()方法

urlsplit()方法與urlparse()方法類似,都可以實現(xiàn)URL的拆分。只是urlsplit()方法不再單獨拆分params這部分內(nèi)容,而是將params合并到path中,所以返回結(jié)果只有5部分內(nèi)容。且返回的數(shù)據(jù)類型為SplitResult。

import urllib.parse    #導(dǎo)入urllib.parse模塊
# 需要拆分的URL
url = 'https://docs.python.org/3/library/urllib.parse.html'
print(urllib.parse.urlsplit(url))     # 使用urlsplit()方法拆分URL
print(urllib.parse.urlparse(url))     # 使用urlparse()方法拆分URL

程序運行結(jié)果:

在這里插入圖片描述

11.2 組合URL

urlunparse()方法

urlunparse()方法實現(xiàn)URL的組合 語法:urlunparse(parts) parts表示用于組合url的可迭代對象

import urllib.parse    #導(dǎo)入urllib.parse模塊
list_url = ['https', 'docs.python.org', '/3/library/urllib.parse.html', '', '', '']
tuple_url = ('https', 'docs.python.org', '/3/library/urllib.parse.html', '', '', '')
dict_url = {'scheme': 'https', 'netloc': 'docs.python.org', 'path': '/3/library/urllib.parse.html', 'params': '', 'query':'', 'fragment': ''}
print('組合列表類型的URL:', urllib.parse.urlunparse(list_url))
print('組合元組類型的URL:', urllib.parse.urlunparse(tuple_url))
print('組合字典類型的URL:', urllib.parse.urlunparse(dict_url.values()))

程序運行結(jié)果:

在這里插入圖片描述

urlunsplit()方法

同樣用于URL組合,只是參數(shù)中的元素必須是5個。

import urllib.parse    #導(dǎo)入urllib.parse模塊
list_url = ['https', 'docs.python.org', '/3/library/urllib.parse.html', '', '']
tuple_url = ('https', 'docs.python.org', '/3/library/urllib.parse.html', '', '')
dict_url = {'scheme': 'https', 'netloc': 'docs.python.org', 'path': '/3/library/urllib.parse.html', 'query': '', 'fragment': ''}
print('組合列表類型的URL:', urllib.parse.urlunsplit(list_url))
print('組合元組類型的URL:', urllib.parse.urlunsplit(tuple_url))
print('組合字典類型的URL:', urllib.parse.urlunsplit(dict_url.values()))

程序運行結(jié)果

在這里插入圖片描述

11.3 連接URL

用**urljoin()**方法來實現(xiàn)URL的連接。 urllib.parse.urljoin(base,url,allow_fragments=True)

  • base 表示基礎(chǔ)鏈接
  • url 表示新的鏈接
  • allow_fragments 為可選參數(shù),默認(rèn)為Ture,設(shè)為False則忽略fragment這部分內(nèi)容。
import urllib.parse    #導(dǎo)入urllib.parse模塊
base_url = 'https://docs.python.org'   # 定義基礎(chǔ)鏈接
# 第二參數(shù)不完整時
print(urllib.parse.urljoin(base_url,'3/library/urllib.parse.html'))
# 第二參數(shù)完整時,直接返回第二參數(shù)的鏈接
print(urllib.parse.urljoin(base_url,'https://docs.python.org/3/library/urllib.parse.html#url-parsing'))

程序運行結(jié)果:

在這里插入圖片描述

11.4 URL的編碼與解碼

使用urlencode()方法編碼請求參數(shù),該方法接收的參數(shù)值為字典

示例

import urllib.parse    # 導(dǎo)入urllib.parse模塊
base_url = 'http://httpbin.org/get?'    # 定義基礎(chǔ)鏈接
params = {'name': 'Jack', 'country': 'China', 'age': 18}  # 定義字典類型的請求參數(shù)
url = base_url+urllib.parse.urlencode(params)       # 連接請求地址
print('編碼后的請求地址為:', url)

程序運行結(jié)果:

在這里插入圖片描述

使用quote方法編碼請求參數(shù),該方法接收的參數(shù)值類型為字符串

示例:

import urllib.parse    #導(dǎo)入urllib.parse模塊
base_url = 'http://httpbin.org/get?country='    # 定義基礎(chǔ)鏈接
url = base_url + urllib.parse.quote('中國')        # 字符串編碼
print('編碼后的請求地址為:', url)

程序運行結(jié)果:

在這里插入圖片描述

使用unquote()方法解碼請求參數(shù),即逆向解碼。

示例:

import urllib.parse    #導(dǎo)入urllib.parse模塊
u = urllib.parse.urlencode({'country': '中國'})  # 使用urlencode編碼
q = urllib.parse.quote('country=中國')              # 使用quote編碼
print('urlencode編碼后結(jié)果為:', u)
print('quote編碼后結(jié)果為:', q)
print('對urlencode解碼:', urllib.parse.unquote(u))
print('對quote解碼:', urllib.parse.unquote(q))

程序運行結(jié)果:

在這里插入圖片描述

11.5URL參數(shù)的轉(zhuǎn)換

使用parse_qs()方法將參數(shù)轉(zhuǎn)換為字典類型。

import urllib.parse    #導(dǎo)入urllib.parse模塊
# 定義一個請求地址
url = 'http://httpbin.org/get?name=Jack&country=%E4%B8%AD%E5%9B%BD&age=30'
q = urllib.parse.urlsplit(url).query   # 獲取需要的參數(shù)
q_dict = urllib.parse.parse_qs(q)      # 將參數(shù)轉(zhuǎn)換為字典類型的數(shù)據(jù)
print('數(shù)據(jù)類型為:', type(q_dict))
print('轉(zhuǎn)換后的數(shù)據(jù):', q_dict)

(其中query是前邊拆分部分提到的拆分結(jié)果對象的一個屬性)

程序運行結(jié)果:

在這里插入圖片描述

使用parse_qsl()方法將參數(shù)轉(zhuǎn)換為元組組成的列表

import urllib.parse    # 導(dǎo)入urllib.parse模塊
str_params = 'name=Jack&country=%E4%B8%AD%E5%9B%BD&age=30'  # 字符串參數(shù)
list_params = urllib.parse.parse_qsl(str_params)   # 將字符串參數(shù)轉(zhuǎn)為元組所組成的列表
print('數(shù)據(jù)類型為:', type(list_params))
print('轉(zhuǎn)換后的數(shù)據(jù):', list_params)

程序運行結(jié)果:

在這里插入圖片描述

到此這篇關(guān)于關(guān)于python爬蟲模塊urllib庫詳解的文章就介紹到這了,更多相關(guān)python爬蟲模塊urllib庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python和Scribus創(chuàng)建一個RGB立方體的方法

    使用Python和Scribus創(chuàng)建一個RGB立方體的方法

    這篇文章主要介紹了使用Python和Scribus創(chuàng)建一個RGB立方體的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 利用python繪制笛卡爾直角坐標(biāo)系

    利用python繪制笛卡爾直角坐標(biāo)系

    這篇文章主要介紹了利用python繪制笛卡爾直角坐標(biāo)系,python繪圖主要用到matplotlib繪圖模塊,利用matplotlib模塊畫出上面的正弦函,需要的朋友可以參考一下
    2022-03-03
  • Python中的變量,參數(shù)和模塊介紹

    Python中的變量,參數(shù)和模塊介紹

    大家好,本篇文章主要講的是Python中的變量,參數(shù)和模塊介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python時間模塊datetime、time、calendar的使用方法

    Python時間模塊datetime、time、calendar的使用方法

    這篇文章主要介紹了Python時間模塊的使用方法,主要包括三大模塊datetime、time、calendar,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Python加密與解密模塊hashlib與hmac

    Python加密與解密模塊hashlib與hmac

    這篇文章介紹了Python中的加密與解密模塊hashlib與hmac,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Python3基礎(chǔ)之基本運算符概述

    Python3基礎(chǔ)之基本運算符概述

    這篇文章主要介紹了Python3基礎(chǔ)的基本運算符,非常重要的知識點,需要的朋友可以參考下
    2014-08-08
  • python3實現(xiàn)用turtle模塊畫一棵隨機櫻花樹

    python3實現(xiàn)用turtle模塊畫一棵隨機櫻花樹

    今天小編就為大家分享一篇python3實現(xiàn)用turtle模塊畫一棵隨機櫻花樹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python爬蟲代理IP池實現(xiàn)方法

    Python爬蟲代理IP池實現(xiàn)方法

    在公司做分布式深網(wǎng)爬蟲,搭建了一套穩(wěn)定的代理池服務(wù),為上千個爬蟲提供有效的代理,保證各個爬蟲拿到的都是對應(yīng)網(wǎng)站有效的代理IP,從而保證爬蟲快速穩(wěn)定的運行,所以就想利用一些免費的資源搞一個簡單的代理池服務(wù)。
    2017-01-01
  • PyCharm搭建Spark開發(fā)環(huán)境的實現(xiàn)步驟

    PyCharm搭建Spark開發(fā)環(huán)境的實現(xiàn)步驟

    這篇文章主要介紹了PyCharm搭建Spark開發(fā)環(huán)境的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python修改和新增字典中鍵值對的2種方法

    python修改和新增字典中鍵值對的2種方法

    這篇文章主要給大家介紹了關(guān)于python修改和新增字典中鍵值對的2種方法,在Python中字典是一系列鍵值對,每個鍵都與一個值相關(guān)聯(lián),與鍵相關(guān)聯(lián)的值可以是數(shù)、字符串、列表乃至字典,需要的朋友可以參考下
    2023-07-07

最新評論