python3 爬蟲4--解析鏈接


1.urlparse()

屬於urllib.parse

在urlparse世界里面,一個標准的URL鏈接格式如下

scheme://nrtlooc/path;paramters?query#fragment

所以,一個url='http://www.baidu.com/index.html;user?id=5#comment'

我們使用urlparse的話,就可以被分成6個部分

(scheme='http',netloc='www.baidu.com',path='index.html'paramters='user'.query='id=5',fragment='comment')

具體操作如下:

res=urlparse('https://www.baidu.com/baidu?wd=query&tn=monline_dg&ie=utf-8')

print(res)

urlparse還有帶參數的是使用方法

res=urlparse(urlstring,scheme=' ',allow_fragment=True)

scheme是默認的協議,如果urlstring沒有帶協議,則使用scheme中的協議,若是有,則仍然使用urlstring中協議

allow_fragment即是否忽略fragment,如果是False,fragment就被解析為path、paramenters或者query中的一部分

2,urlunparse()

屬於urllib.parse

正如其名字所示,ulrunparse()是urlparse()的逆過程

例如:data=['http','www.baidu.com','index.html','user','a=6','comment']

print(urlunparse(data))

這樣就完成了urlstring的構造

3urlsplit()

from urllib.parse import urlsplit

與urlparse類似,但urlsplict把urlstirng分割成5個部分,其中少了paramters

res=urlsplict('http://www.baidu.com/index.html;user?id=5#comment')

print(res)

4urlunsplit()

用法與urlunparse()類似

5urljoin()

屬於urllib.parse

urljoin()也是一種生成urlstring的方式,這種生成方法是提供兩個鏈接,分別是base_url,和新鏈接,分析base_url中的scheme,netloc,path這三個部分,然后對新鏈接缺失的部分進行補充,新鏈接里面若是有,則不補充,不提換,最后返回新鏈接,舉個例子

print(urljoin('http://www.baidu.com',‘wd=query&tn=monline_dg&ie=utf-8‘))

返回結果是:

http://www.baidu.com/wd=query&tn=monline_dg&ie=utf-8
6urlencode()

from urllib,parse import urlencode

可以將字典類型轉換為url參數舉例來說

param={'name':'lihua','age':'23'}

base_url='http://www.baidu.com'

url=base_url+urlencode(param)

print(url)

7parse_qs()

parse_qs()是parse_encode()的逆過程(為什么名字的區別這么大,我也是不得其解)

from urllib.parse import parse_qs

query='wd=query&tn=monline_dg&ie=utf-8'

print(parse_qs(query))

輸出結果是:{'tn': ['monline_dg'], 'wd': ['query'], 'ie': ['utf-8']}
這樣就轉換稱為字典類型了

8pars_qsl()

from urllib.pase  import parse_qsl:將參數轉換成為元組組成的列表

query='wd=query&tn=monline_dg&ie=utf-8'

print(parse_qsl(query))

輸出結果:[('wd', 'query'), ('tn', 'monline_dg'), ('ie', 'utf-8')]

9quote

quote()方法可以將內容轉換為URL編碼格式,有時候URL帶中文可能導致亂碼,這樣就需要quote

from urllib。parse import quote

keyword='美女'

url='https://www.baidu.com/s?wd='+quote(keyword)

print(url)

輸出結果:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

10unquote()

對URL進行解碼

from urllib.parse import unquote

url='https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3'

print(unquote(url))

輸出結果:https://www.baidu.com/s?wd=美女
就可以實現解碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM