當前位置:首頁 » 編程語言 » pythonurl格式

pythonurl格式

發布時間: 2023-02-09 19:39:29

『壹』 python爬蟲爬取圖片這個報錯怎麼處理

你好!你的錯誤原因在於html頁面獲取到的img標簽src屬性中的鏈接,可能是因為src中的url格式是這樣的:

<imgsrc="//hao123.com/xxx/xxx/xxx/"></img>

這樣獲取到的鏈接都沒有帶上協議:http或者https。而導致程序拋出ValueError的錯誤異常。

因為正常的url格式應該類似這樣的:https://www..com/

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

參考網頁鏈接

可將代碼中第一個for循環中download_links.append修改為:

forpic_taginsoup.find_all('img'):
pic_link=pic_tag.get('src')
download_links.append('http:'+pic_link)

『貳』 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

『叄』 python中url太長怎麼解決

今天寫了個腳本 主要就是實現利用sqlInj點直接把數據獲取到本地並存到Mysql資料庫
學過Python的都知道可以使用urllib2中的request()方法直接打開Url,但僅限於url後沒有跟復雜的參數串
今天我利用的Url是
' and (select top 1 cast(CONTENT as varchar(8000)) from xxx.dbo.xxx where cast(CONTENT as varchar) not in (select top 22 cast(CONTENT as varchar) from xxx.dbo.xxx))=0--
開始我也直接用以下語句測試的:
url="上面的URL"
req=urllib2.Request(url)
urllib2.urlopen(req)
可是執行後一直提示500錯誤,由此可以發現應該是Python在對Url進行編碼的時候更改了某些特殊字元造成Url失效
我們可以用urllib2或urllib的quote()方法控制對特殊字元的URL編碼,這里推薦用 urllib下的quote_plus()方法,它將空格轉化成'+'而非%20通用性更好。
我們更改後的代碼如下:
url = "' and (select top 1 cast(CONTENT as varchar(8000)) from xxx.dbo.xxx where cast(CONTENT as varchar) not in (select top "+str(count)+" cast(CONTENT as varchar) from xxx.dbo.xxx))=0--"
quoteUrl=urllib.quote_plus(url,safe=':\'/?&=()')
fd = urllib.urlopen(quoteUrl)
這樣我們就可以正常的提取數據了

『肆』 【壹】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拼接代碼

方法來自網路,保存以便以後自用。

經測試可正確拼接下列形式
base1 = ' http://www.bagtree.com/' url1 = '../../themes/bagtree_2011/images/pin.gif'
base2 = ' http://info.ceo.hc360.com/list/qygl-ldl.shtml' url2 = '/2011/11/250020188368.shtml'
base3 = ' http://info.ceo.hc360.com/2012/07/190833206838.shtml' url3 = '190833206838-2.shtml'

1_url = " https://pvp.qq.com/web201605/ "
2_url="/herodetail/531.shtml"
add_url =" https://pvp.qq.com/web201605/herodetail/531.shtml "

『陸』 Python 用正則表達式提取txt文件里包含的url的表達式

這種結構化的數據交換格式,按照約定的格式來解析是最好的,而不是去用正則,這樣能准確的取出數據中對應位置的數據。像這樣

#!/usr/bin/envpython
#-*-coding:utf-8-*-
importjson
withopen('google.txt')asf:
obj=json.loads(f.read())
urls=[e[0]foreinobj]
print(urls)

我用你上面的部分數據做了一個測試用的google.txt,這個運行的結果是

[u'http://en.wikipedia.org/wiki/403(b)', u'http://www.investopedia.com/terms/1/403bplan.asp']

『柒』 利用Python縮短URL鏈接

有時候我們要把一些鏈接發簡訊通知別人,如果鏈接太長,一條簡訊支持不了。
發現Python就可以解決這個問題。

第一步: 安裝庫
在windows下,輸入cmd,進入DOS界面,輸入 pip install pyshorteners
當然,前提是你已經安裝了pip

第二步:寫程序

第三步:調用程序

如果你是用Jupyter Notebook,你可以參考以下步驟

『捌』 【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』

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

『玖』 url編碼問題在python中怎麼解決

最近在抓取一些js代碼產生的動態數據,需要模擬js請求獲得所需用的數據,遇到對url進行編碼和解碼的問題,就把遇到的問題總結一下,有總結才有進步,才能使學到的知識更加清晰。對url進行編碼和解碼,python提供了很方便的介面進行調用。

url中的query帶有特殊字元(不是url的保留字)時需要進行編碼。當url中帶有漢字時,需要特殊的處理才能正確編碼,以下都只針對這種情形,當然也適用於純英文字元的url。

(1) url編碼:

import urllib

url = 'wd=哈哈' #如果此網站編碼是gbk的話,需要進行解碼,從gbk解碼成unicode,再從Unicode編碼編碼為utf-8格式。

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

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

結果: 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') #反過來

函數調用的參數以及結果都是utf-8編碼的,所以在對url編碼時,需要將參數串的編碼從原始編碼轉換成utf-8,

對url解碼時,需要將解碼結果從utf-8轉換成原始編碼格式。

依據網站採用的編碼不同,或是gbk或是utf-8,賦賦予不同的編碼,進行不同的url轉碼。GBK格式,一個中文字元轉為%xx%xx,共兩組;utf-8格式,一個中文字元轉為%xx%xx%xx,共三組。

  • >>>importsys,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

  • a="墨西哥女孩被拐4年接客4萬次生的孩子成為人質-搜狐新聞"

  • printurllib.quote(urllib.quote(a))

  • 進行兩次編碼轉換後,會變為:%25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................這樣的形式。

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

    最近用python寫了個小爬蟲自動下點東西,但是url 是含中文的,而且中文似乎是 gbk 編碼然後轉成 url的。舉個例子吧,我如果有個unicode字元串「歷史上那些牛人們.pdf」,那麼我轉換成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",
    但是對方網站給的是 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

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:581
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:875
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:570
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:755
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:672
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:999
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:242
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:102
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:794
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:700