欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

pythonurl函數(shù) Python中url

url編碼問(wèn)題在python中怎么解決

最近在抓取一些js代碼產(chǎn)生的動(dòng)態(tài)數(shù)據(jù),需要模擬js請(qǐng)求獲得所需用的數(shù)據(jù),遇到對(duì)url進(jìn)行編碼和解碼的問(wèn)題,就把遇到的問(wèn)題總結(jié)一下,有總結(jié)才有進(jìn)步,才能使學(xué)到的知識(shí)更加清晰。對(duì)url進(jìn)行編碼和解碼,python提供了很方便的接口進(jìn)行調(diào)用。

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),河曲網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:河曲等地區(qū)。河曲做網(wǎng)站價(jià)格咨詢(xún):028-86922220

url中的query帶有特殊字符(不是url的保留字)時(shí)需要進(jìn)行編碼。當(dāng)url中帶有漢字時(shí),需要特殊的處理才能正確編碼,以下都只針對(duì)這種情形,當(dāng)然也適用于純英文字符的url。

(1) url編碼:

import urllib

url = 'wd=哈哈' ? #如果此網(wǎng)站編碼是gbk的話,需要進(jìn)行解碼,從gbk解碼成unicode,再?gòu)腢nicode編碼編碼為utf-8格式。

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

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

結(jié)果: 3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88

(2) url解碼:

import urllib

encoded_url = est.com%2fs%3fwd%3d%e5%93%88%e5%93%88'

print urllib.unquote(encoded_url).decode('utf-8', 'replace').encode('gbk', 'replace') ?#反過(guò)來(lái)

函數(shù)調(diào)用的參數(shù)以及結(jié)果都是utf-8編碼的,所以在對(duì)url編碼時(shí),需要將參數(shù)串的編碼從原始編碼轉(zhuǎn)換成utf-8,

對(duì)url解碼時(shí),需要將解碼結(jié)果從utf-8轉(zhuǎn)換成原始編碼格式。

依據(jù)網(wǎng)站采用的編碼不同,或是gbk或是utf-8,賦賦予不同的編碼,進(jìn)行不同的url轉(zhuǎn)碼。GBK格式,一個(gè)中文字符轉(zhuǎn)為%xx%xx,共兩組;utf-8格式,一個(gè)中文字符轉(zhuǎn)為%xx%xx%xx,共三組。

import?sys,urllib?

s?=?'杭州'

urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))

%BA%BC%D6%DD

urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))

'%E6%9D%AD%E5%B7%9E'

[python]?view plain?copy

a?=?"墨西哥女孩被拐4年接客4萬(wàn)次?生的孩子成為人質(zhì)-搜狐新聞"

print?urllib.quote(urllib.quote(a))

進(jìn)行兩次編碼轉(zhuǎn)換后,會(huì)變?yōu)椋?25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................這樣的形式。

同樣需要兩次解碼后才能得到中文。

最近用python寫(xiě)了個(gè)小爬蟲(chóng)自動(dòng)下點(diǎn)東西,但是url 是含中文的,而且中文似乎是 gbk 編碼然后轉(zhuǎn)成 url的。舉個(gè)例子吧,我如果有個(gè)unicode字符串“歷史上那些牛人們.pdf”,那么我轉(zhuǎn)換成url之后是,?

t="%20%E5%8E%86%E5%8F%B2%E4%B8%8A%E9%82%A3%E4%BA%9B%E7%89%9B%E4%BA%BA%E4%BB%AC.pdf",?

但是對(duì)方網(wǎng)站給的是 s="%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF"

print urllib.unquote("%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF").decode('gbk').encode('utf-8')

歷史上那些牛人們.PDF

python里怎么獲得一個(gè)url最后一個(gè)/后的字符串

1、python處理字符串非常簡(jiǎn)單,獲取url最后一個(gè)/之后的字符串,使用字符串函數(shù)rindex得到最后一個(gè)/位置,然后再對(duì)url字符串進(jìn)行切片就可以得到url最后一個(gè)/后的字符串

2、代碼:

url = ''

ri = url.rindex('/')

ss = url[ri + 1:]

print(ss)

3、輸出果:

1242758094522051179.html

4、函數(shù)說(shuō)明:

rindex(...)

S.rindex(sub[,

start[,

end]])

-

int

從字符串右則查找指字符串,sub要查找了內(nèi)容,start起始位置,end結(jié)束位置,函數(shù)返回位置。

5、字符串切片說(shuō)明:

str[start:end]

獲取字符串以start開(kāi)始位置end位置之前的字符結(jié)束的字符,如果start為空為從字符串起始開(kāi)始,如果end為空則到字符串末尾。以示例中代碼為例url[ri

+

1:]就是取url中ri+1位置到url結(jié)尾的子字符串。

python爬蟲(chóng)怎么獲取到的網(wǎng)站的所有url

首先我們可以先獲取要下載圖片的整個(gè)頁(yè)面信息。

getjpg.py

#coding=utf-8

import urllib

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

print html

Urllib 模塊提供了讀取web頁(yè)面數(shù)據(jù)的接口,我們可以像讀取本地文件一樣讀取www和ftp上的數(shù)據(jù)。首先,我們定義了一個(gè)getHtml()函數(shù):

urllib.urlopen()方法用于打開(kāi)一個(gè)URL地址。

read()方法用于讀取URL上的數(shù)據(jù),向getHtml()函數(shù)傳遞一個(gè)網(wǎng)址,并把整個(gè)頁(yè)面下載下來(lái)。執(zhí)行程序就會(huì)把整個(gè)網(wǎng)頁(yè)打印輸出。

網(wǎng)站標(biāo)題:pythonurl函數(shù) Python中url
本文路徑:http://chinadenli.net/article38/hghopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站響應(yīng)式網(wǎng)站ChatGPT網(wǎng)站導(dǎo)航Google外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)