當前位置:首頁 » 編程語言 » python解析url

python解析url

發布時間: 2023-04-04 12:23:09

python3 如何對url解碼

url編碼:

import urllib

url = 'http://test.com/s?wd=哈哈' #如果塵鉛早此網站編碼是激蠢gbk的話派雀,需要進行解碼,從gbk解碼成unicode,再從Unicode編碼編碼為utf-8格式。

url = url.decode('gbk', 'replace')

print urllib.quote(url.encode('utf-8', 'replace'))

❷ 用python怎麼解析'%3cp%3e%e5%'

import urllib
rawurl=xxx
url=urllib.unquote(rawurl)

所用模塊:urllib
所用函數:urllib.unquote()
案例
import urllib
rawurl = "%E6%B2%B3%E6%BA%90"url = urllib.unquote(rawurl)print url

輸出
河源

問題擴展
urllib.unquote()目的是對url編碼進行解碼,與該函數對應的是編碼函數urllib.quote()

123

>>> import urllib>>> urllib.quote("河源")'%E6%B2%B3%E6%BA%90

URL為何要編碼、解碼?
通常如果一樣東西需要編碼,說明這樣東西並不適合傳輸。原因多種多樣,如Size過大,包含隱私數據。對於Url來說,之所以要進行編碼,是因為Url中有些字元會引起歧義。
例如,Url參數字元串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8。如果你的value字元串中包含了=或者&,那麼勢必會造成接收Url的伺服器解析錯誤,因此必須將引起歧義的&和=符號進行轉義,也就是對其進行編碼。
又如,Url的編碼格式採用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字元,例如中文。否則如果客戶端瀏覽器和服務端瀏覽器支持的字元集不同的情況下,中文可能會造成問題。

❸ 【Python中常用的庫系列】——操作url的模塊urlparse 模塊

文章目錄

一、功能介紹

二、功能介紹

1.`urlparse.urlparse`

2.`urlparse.urlsplit`

3.`urlparse.urljoin`

一、功能介紹

官方文檔 :http://docs.python.org/library/urlparse.html

作用:urlparse模塊主要是用於解析url中的參數 對url按照一定格式進行 拆分或拼接

注意:urlparse 模塊在 python 3.0 中 已經改名為 urllib.parse

二、功能介紹

1.urlparse.urlparse

1.1 獲取ParseResult對象

將url分為6個部分,返回一個包含6個字元串的元組:協議、位置、路徑、參數、查詢、片段。

舉例:

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change

'''

輸出結果:

ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

'''

scheme 是協議

netloc 是域名伺服器

path 相對路徑

params是參數

query是查詢的條件

fragment是片段

1.2獲取結果的某一項

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change.query  # opt=1

print url_change.scheme  # https

1.3獲取結果的某一項,用字典或元組展示

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print urlparse.parse_qs(url_change.query)  # {'opt': ['1']}

print urlparse.parse_qsl(url_change.query)  # [('opt', '1')]

2.urlparse.urlsplit

2.1獲取SplitResult對象

和urlparse差不多,將url分為5部分,返回一個包含5個字元串項目的元組:協議、位置、路徑、查詢、片段。

import urlparse

url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change

'''

輸出結果:

SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')

'''

scheme 是協議

netloc 是域名伺服器

path 相對路徑

query是查詢的條件

fragment是片段

2.2獲取某一項

print url_change.scheme # https

3.urlparse.urljoin

將相對的地址組合成一個url,對於輸入沒有限制,開頭必須是http://或者https://,否則將不組合前面。

import urlparse

new_url = urlparse.urljoin('https://.com/ssss/','88888')

print new_url

'''

https://.com/ssss/88888

''' 注意 :如果輸入錯誤信息 如 new_url = urlparse.urljoin('122','88888') 並不會將兩者合並,而輸出後邊的鏈接,即『88888』

域名放在第一個參數,第二個參數為要和域名拼接的子鏈接

❹ 【壹】Python爬蟲入門——認識URL

【系列前言】前段時間李響同學入門了一些Python的基礎知識,覺得一直在IDLE里print一些演算法題有一些枯燥,所以決定通過學習爬蟲來提高自己的興趣。而且最近確實有一些重復性勞動,想使用爬蟲簡化工作。遂打算邊自學邊寫自己自學的過程,一方面作為小白的我可以和其他Python大神交流,一方面也可以以此監督自己。
【本人使用Python版本:2.7.5】

首先按理解一下爬蟲(Spider),如果把一個站點比作一張縱橫交錯的蜘蛛網,那麼我們爬蟲要做的就是在這張網上爬來爬去,獲得這張網上的信息和資源。而Web上每種資源,比如HTML文檔、圖片、視頻等都由一個URI(Universal Resource Identifier,通用資源標志符)進行定位。 URL(Uniform Resource Locator,統一資源定位符)是URI的子集。採用URL可以用一種統一的格式來描述各種信息資源,包括文件、伺服器的地址和目錄等。而爬蟲主要的處理對象就是URL。所以務必要對URL有一定的熟悉。

URI通常由三部分組成:
1.訪問資源的命名機制;
2.存放資源的主機名;
3.資源自身 的名稱,由路徑表示。

URL的格式由三部分組成:
1.第一部分是協議(或稱為服務方式)。
2.第二部分是存有該資源的主機IP地址(有時也包括埠號)。
3.第三部分是主機資源的具體地址,如目錄和文件名等。
知乎:HTTP 協議中 URI 和 URL 有什麼區別?@西毒 的回答

最近在搞挑戰杯可能會有點忙,但還是希望自己能按照計劃學習,定期更新此系列。

❺ Python獲取url中域名及從域名中提取ip的方法

這種方法為從urlparse模塊中通過urlparse方法提取url通過hostname屬性獲取當前url的域名。

此方法是通過urllib模塊中splittype方法先從url中獲取到proto協議及rest結果,然後通過splithost從rest中獲取到host及rest結果,此時host為域名。(rest被分割了兩次)如下圖:

此方法為從sokcet模塊中獲取到gethostbyname方法將域名傳遞進去就能解析出域名的ip。

此方法為通過nslookup獲取域名的ip。

以上從域名中提取ip會不準確,需要設置DNS伺服器,這樣解析域名就准確了。

❻ python中中怎麼解決url變成文本格式後不能點擊

完整的url語法格式:

協議://用戶名@密碼:子域名.域名.頂級域名:埠號/目錄/文件名.文件後綴?參數=值#標識

2 、urlparse模塊對url的處理方法
urlparse模塊對緩鋒飢url的主要處理方法有:urljoin/urlsplit/urlunsplit/urlparse等。該模塊對url的定義基御採用六元組的形式:schema://netloc/path;parameters?query#fragment。其中,netloc包含下表的後4個屬性
urlparse()
利用urlparse()方法對url進行解析,返回六元組;urlunparse()對六元組進行組合
urljoin()
利用urljoin()方法對絕對url地址與相對url地址進行拼合

       主要使用urljoin()比較常用——給出以下示例:   

>>>from urllib.parse import urljoin
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "anotherpage.html")
'http://www.chachabei.com/folder/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "/anotherpage.html")
'http://www.chachabei.com/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "folder2/anotherpage.html")
'http://www.chachabei.com/folder/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/folder/currentpage.html", "/folder2/anotherpage.html")
'http://www.chachabei.com/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/abc/folder/currentpage.html", "/folder2/anotherpage.html")
'http://www.chachabei.com/folder2/anotherpage.html'
>>> urljoin("http://www.chachabei.com/abc/folder/currentpage.html", "../anotherpage.html")
'http://www.chachabei.com/abc/anotherpage.html'
登錄後復制

urlsplit()
利用urlsplit()方法可以對URL進行分解;與urlparse()相比,urlsplit()函數擾返返回一個五元組,沒有parameter參數。
相應的,urlunsplit()方法可以對urlsplit()分解的五元組進行合並。兩種方法組合在一起,可以對URL進行有效地格式化,特殊字元在此過程中得到轉換。
3 urllib模塊對url的編碼與解碼
urllib模塊的quote_plus()方法實現對url的編碼,包括對中文的編碼;unquote_plus()方法實現對url的解碼,包括對中文的解碼。

Python
urllib
urljoin()
名表折扣店瑞士手錶
精選推薦
廣告

python url 參數修改方法
0下載·0評論
2021年1月21日
Python 中的 urlencode 和 urldecode 操作
4859閱讀·0評論·2點贊
2019年1月2日
Python常用函數(urlencode 與 urldecode)
496閱讀·0評論·0點贊
2022年12月10日
python爬蟲URL重試機制的實現方法(python2.7以及python3.5)
0下載·0評論
2020年12月25日
python—介面調用
1.0W閱讀·0評論·6點贊
2020年1月18日
python調用第三方介面獲取數據_python 介面實現 供第三方調用的例子
116閱讀·0評論·0點贊
2020年11月28日
Python中url的編碼以及解碼
8828閱讀·0評論·3點贊
2021年9月7日
使用python 實現url 介面的方法
3334閱讀·0評論·2點贊
2019年1月22日
Python2.7 網路請求 urllib、urllib2和requests
777閱讀·0評論·0點贊
2022年6月21日
python 中的 urlencode 編碼與 urldecode 解碼
3732閱讀·1評論·1點贊
2022年3月10日
python2.7 模擬登錄後調用自定義HTTP介面發送告警
113閱讀·0評論·0點贊
2020年8月4日
python2.7版本登錄獲取cookie並調用介面(二)
804閱讀·0評論·0點贊
2022年3月8日
python調用介面限流_Kong 網關API安裝部署以及應用實例----------騰雲駕霧
418閱讀·0評論·0點贊
2020年12月5日
urllib2模塊中文翻譯與學習 - Python 2.7.8官方文檔
44閱讀·0評論·0點贊
2014年10月30日
Python 2.7 獲取網路信息(Urllib)
3262閱讀·0評論·1點贊
2017年6月30日
Python---關於URL的處理(基於Python2.7版本)
491閱讀·0評論·0點贊
2019年6月3日
python爬蟲開發 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法總結
284閱讀·0評論·0點贊
2022年10月11日
Python 解析獲取 URL 參數以及使用
3806閱讀·0評論·3點贊
2022年6月9日
Python-URL編碼和URL解碼方法
8796閱讀·2評論·3點贊
2020年8月13日
去首頁
看看更多熱門內容

❼ python如何解析url獲取host

最近在工作中需要將url的host和path路徑分開存儲,python內置的 urlparse , 支持我們優雅的解決這個問題, 參考地址

由上文我們可以看到,url被拆分的很細致,提取的方法也很簡單,只需要給屬性取一個別名,後面跟上解析的key,即可匹配出解析文本。

❽ Python網頁解析庫:用requests-html爬取網頁

Python 中可以進行網頁解析的庫有很多,常見的有 BeautifulSoup 和 lxml 等。在網上玩爬蟲的文章通常都是介紹 BeautifulSoup 這個庫,我平常也是常用這個庫,最近用 Xpath 用得比較多,使用 BeautifulSoup 就不大習慣,很久之前就知道 Reitz 大神出了一個叫 Requests-HTML 的庫,一直沒有興趣看,這回可算歹著機會用一下了。

使用 pip install requests-html 安裝,上手和 Reitz 的其他庫一樣,輕松簡單:

這個庫是在 requests 庫上實現的,r 得到的結果是 Response 對象下面的一個子類,多個一個 html 的屬性。所以 requests 庫的響應對象可以進行什麼操作,這個 r 也都可以。如果需要解析網頁,直接獲取響應對象的 html 屬性:

不得不膜拜 Reitz 大神太會組裝技術了。實際上 HTMLSession 是繼承自 requests.Session 這個核心類,然後將 requests.Session 類里的 requests 方法改寫,返回自己的一個 HTMLResponse 對象,這個類又是繼承自 requests.Response,只是多加了一個 _from_response 的方法來構造實例:

之後在 HTMLResponse 里定義屬性方法 html,就可以通過 html 屬性訪問了,實現也就是組裝 PyQuery 來干。核心的解析類也大多是使用 PyQuery 和 lxml 來做解析,簡化了名稱,挺討巧的。

元素定位可以選擇兩種方式:

方法名非常簡單,符合 Python 優雅的風格,這里不妨對這兩種方式簡單的說明:

定位到元素以後勢必要獲取元素裡面的內容和屬性相關數據,獲取文本:

獲取元素的屬性:

還可以通過模式來匹配對應的內容:

這個功能看起來比較雞肋,可以深入研究優化一下,說不定能在 github 上混個提交。

除了一些基礎操作,這個庫還提供了一些人性化的操作。比如一鍵獲取網頁的所有超鏈接,這對於整站爬蟲應該是個福音,URL 管理比較方便:

內容頁面通常都是分頁的,一次抓取不了太多,這個庫可以獲取分頁信息:

結果如下:

通過迭代器實現了智能發現分頁,這個迭代器裡面會用一個叫 _next 的方法,貼一段源碼感受下:

通過查找 a 標簽裡面是否含有指定的文本來判斷是不是有下一頁,通常我們的下一頁都會通過 下一頁 或者 載入更多 來引導,他就是利用這個標志來進行判斷。默認的以列表形式存在全局: ['next','more','older'] 。我個人認為這種方式非常不靈活,幾乎沒有擴展性。 感興趣的可以往 github 上提交代碼優化。

也許是考慮到了現在 js 的一些非同步載入,這個庫支持 js 運行時,官方說明如下:

使用非常簡單,直接調用以下方法:

第一次使用的時候會下載 Chromium,不過國內你懂的,自己想辦法去下吧,就不要等它自己下載了。render 函數可以使用 js 腳本來操作頁面,滾動操作單獨做了參數。這對於上拉載入等新式頁面是非常友好的。

❾ 什麼是python url解析器

python標准庫中有個url解析庫,叫【urlparser】,它的作用是解析給定的url,
並返回一個6-tuple,類型是ParseResult(scheme, netloc, path, params, query, fragment)
在爬蟲方面是很有用的

❿ python指定url

今天簡單使用了一下python的re模塊和lxml模塊,分別利用的它們提供的正則表達式和xpath來解析頁面源碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這里之所以又使用了一下正則表達式是因為xpath在處理一些特殊的頁面的時候會出現亂碼的情況,當然這不是xpath的原因,而是頁面本身編碼,跟utf-8轉碼之間有沖突所致,這里看代碼:

python抽取指定url頁面的title方法(python獲取當前頁面的url) python 抽取 url title 腳本之家 第1張

# !/usr/bin/python
#-*-coding:utf-8-*-
'''
功能:抽取指定url的頁面內容中的title
'''
import re
import chardet
import urllib
from lxml import etree
def utf8_transfer(strs):
'''
utf8編碼轉換
'''
try:
if isinstance(strs, unicode):
strs = strs.encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'GB2312':
strs = strs.decode("gb2312", 'ignore').encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'utf-8':
strs = strs.decode('utf-8', 'ignore').encode('utf-8')
except Exception, e:
print 'utf8_transfer error', strs, e
return strs
def get_title_xpath(Html):
'''
用xpath抽取網頁Title
'''
Html = utf8_transfer(Html)
Html_encoding = chardet.detect(Html)['encoding']
page = etree.HTML(Html, parser=etree.HTMLParser(encoding=Html_encoding

熱點內容
早期存儲卡 發布:2024-11-02 14:26:50 瀏覽:988
配音秀緩存在手機哪裡 發布:2024-11-02 14:23:27 瀏覽:294
linux下載gcc 發布:2024-11-02 14:13:47 瀏覽:344
寫演算法交易 發布:2024-11-02 13:57:09 瀏覽:208
安卓怎麼下載鴻蒙 發布:2024-11-02 13:36:13 瀏覽:663
加密狗rsa 發布:2024-11-02 13:20:44 瀏覽:560
實用java教程 發布:2024-11-02 13:07:39 瀏覽:930
ide文件夾 發布:2024-11-02 12:51:37 瀏覽:559
python中字典的用法 發布:2024-11-02 12:40:42 瀏覽:28
安卓怎麼下載zine 發布:2024-11-02 12:40:38 瀏覽:793