国产免费牲交视频无遮挡_偷偷鲁视频成人免费视频_中文无码 日韩精品_曰韩无码人妻中文字幕

新聞資訊

新聞資訊
首頁(yè) > 新聞資訊 > 正文內(nèi)容

怎么做網(wǎng)站賺錢(qián)17t(給別人做網(wǎng)站賺錢(qián)嗎)

時(shí)間:2023-11-11 信途科技新聞資訊

Python 訪問(wèn)網(wǎng)絡(luò)資源有很多方法,urllib, urllib2, urllib3, httplib, httplib2, requests ,現(xiàn)介紹如下兩種方法:

內(nèi)置的 urllib 模塊優(yōu)點(diǎn):自帶模塊,無(wú)需額外下載第三方庫(kù)缺點(diǎn):操作繁瑣,缺少高級(jí)功能第三方庫(kù) requests優(yōu)點(diǎn):處理URL資源特別方便缺點(diǎn):需要下載安裝第三方庫(kù)內(nèi)置的 urllib 模塊發(fā)起GET請(qǐng)求

主要使用urlopen()方法來(lái)發(fā)起請(qǐng)求,如下:

from urllib import requestresp = request.urlopen('http://xintu.baidu.com')print(resp.read().decode())

訪問(wèn)的結(jié)果會(huì)是一 個(gè)http.client.HTTPResponse 對(duì)象,使用此對(duì)象的 read() 方法,則可以獲取訪問(wèn)網(wǎng)頁(yè)獲得的數(shù)據(jù)。但是要注意的是,獲得的數(shù)據(jù)會(huì)是 bytes 的二進(jìn)制格式,所以需要 decode() 一下,轉(zhuǎn)換成字符串格式。

發(fā)起POST請(qǐng)求

urlopen() 默認(rèn)的訪問(wèn)方式是GET,當(dāng)在 urlopen() 方法中傳入data參數(shù)時(shí),則會(huì)發(fā)起POST請(qǐng)求。注意:傳遞的data數(shù)據(jù)需要為bytes格式。

設(shè)置timeout參數(shù)還可以設(shè)置超時(shí)時(shí)間,如果請(qǐng)求時(shí)間超出,那么就會(huì)拋出異常。如下:

from urllib import requestresp = request.urlopen('http://xintu.baidu.com', data=b'word=hello', timeout=10)print(resp.read().decode())添加Headers

通過(guò) urllib 發(fā)起的請(qǐng)求會(huì)有默認(rèn)的一個(gè)Headers:”User-Agent”:”P(pán)ython-urllib/3.6”,指明請(qǐng)求是由 urllib 發(fā)送的。所以遇到一些驗(yàn)證User-Agent的網(wǎng)站時(shí),我們需要自定義Headers,而這需要借助于urllib.request中的 Request 對(duì)象。

from urllib import requesturl = 'http://httpbin.org/get'headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}# 需要使用url和headers生成一個(gè)Request對(duì)象,然后將其傳入urlopen方法中req = request.Request(url, headers=headers)resp = request.urlopen(req)print(resp.read().decode())Request對(duì)象

如上所示, urlopen() 方法中不止可以傳入字符串格式的url,也可以傳入一個(gè) Request 對(duì)象來(lái)擴(kuò)展功能,Request 對(duì)象如下:

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

構(gòu)造 Request 對(duì)象必須傳入url參數(shù),data數(shù)據(jù)和headers都是可選的。

最后, Request 方法可以使用method參數(shù)來(lái)自由選擇請(qǐng)求的方法,如PUT,DELETE等等,默認(rèn)為GET。

添加Cookie

為了在請(qǐng)求時(shí)能帶上Cookie信息,我們需要重新構(gòu)造一個(gè)opener。

使用request.build_opener方法來(lái)進(jìn)行構(gòu)造opener,將我們想要傳遞的cookie配置到opener中,然后使用這個(gè)opener的open方法來(lái)發(fā)起請(qǐng)求。如下:

from http import cookiejarfrom urllib import requesturl = 'https://xintu.baidu.com'# 創(chuàng)建一個(gè)cookiejar對(duì)象cookie = cookiejar.CookieJar()# 使用HTTPCookieProcessor創(chuàng)建cookie處理器cookies = request.HTTPCookieProcessor(cookie)# 并以它為參數(shù)創(chuàng)建Opener對(duì)象opener = request.build_opener(cookies)# 使用這個(gè)opener來(lái)發(fā)起請(qǐng)求resp = opener.open(url)# 查看之前的cookie對(duì)象,則可以看到訪問(wèn)百度獲得的cookiefor i in cookie: print(i)

或者也可以把這個(gè)生成的opener使用install_opener方法來(lái)設(shè)置為全局的。

則之后使用urlopen方法發(fā)起請(qǐng)求時(shí),都會(huì)帶上這個(gè)cookie。

# 將這個(gè)opener設(shè)置為全局的openerrequest.install_opener(opener)resp = request.urlopen(url)設(shè)置Proxy代理

使用爬蟲(chóng)來(lái)爬取數(shù)據(jù)的時(shí)候,常常需要使用代理來(lái)隱藏我們的真實(shí)IP。如下:

from urllib import requesturl = 'http://xintu.baidu.com'proxy = {'http':'222.222.222.222:80','https':'222.222.222.222:80'}# 創(chuàng)建代理處理器proxies = request.ProxyHandler(proxy)# 創(chuàng)建opener對(duì)象opener = request.build_opener(proxies)resp = opener.open(url)print(resp.read().decode())下載數(shù)據(jù)到本地

在我們進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí)常常需要保存圖片或音頻等數(shù)據(jù)到本地,一種方法是使用python的文件操作,將read()獲取的數(shù)據(jù)保存到文件中。

而urllib提供了一個(gè)urlretrieve()方法,可以簡(jiǎn)單地直接將請(qǐng)求獲取的數(shù)據(jù)保存成文件。如下:

from urllib import requesturl = 'http://python.org/'request.urlretrieve(url, 'python.html')

urlretrieve() 方法傳入的第二個(gè)參數(shù)為文件保存的位置,以及文件名。

注意:urlretrieve() 方法是python2直接移植過(guò)來(lái)的方法,以后有可能在某個(gè)版本中棄用。

第三方庫(kù) requests安裝

由于 requests是第三方庫(kù),所以要先安裝,如下:

pip install requests發(fā)起GET請(qǐng)求

直接用 get 方法,如下:

import requestsr = requests.get('http://xintu.baidu.com/')print(r.status_code) #狀態(tài)print(r.text) #內(nèi)容

對(duì)于帶參數(shù)的URL,傳入一個(gè)dict作為params參數(shù),如下:

import requestsr = requests.get('http://xintu.baidu.com/', params={'q': 'python', 'cat': '1001'})print(r.url) #實(shí)際請(qǐng)求的URLprint(r.text)

requests的方便之處還在于,對(duì)于特定類(lèi)型的響應(yīng),例如JSON,可以直接獲取,如下:

r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')r.json()# {'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', ...添加Headers需要傳入HTTP Header時(shí),我們傳入一個(gè)dict作為headers參數(shù),如下:添加Headers

需要傳入HTTP Header時(shí),我們傳入一個(gè)dict作為headers參數(shù),如下:

r = requests.get('https://xintu.baidu.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})

獲取響應(yīng)頭,如下:

r.headers# {Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}r.headers['Content-Type']# 'text/html; charset=utf-8'發(fā)起POST請(qǐng)求

要發(fā)送POST請(qǐng)求,只需要把get()方法變成post(),然后傳入data參數(shù)作為POST請(qǐng)求的數(shù)據(jù),如下:

r = requests.post('https://accounts.baidu.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})

requests默認(rèn)使用application/x-xintu-form-urlencoded對(duì)POST數(shù)據(jù)編碼。如果要傳遞JSON數(shù)據(jù),可以直接傳入json參數(shù),如下:

params = {'key': 'value'}r = requests.post(url, json=params) #內(nèi)部自動(dòng)序列化為JSON上傳文件

上傳文件需要更復(fù)雜的編碼格式,但是requests把它簡(jiǎn)化成files參數(shù),如下:

upload_files = {'file': open('report.xls', 'rb')}r = requests.post(url, files=upload_files)

在讀取文件時(shí),注意務(wù)必使用 'rb' 即二進(jìn)制模式讀取,這樣獲取的 bytes 長(zhǎng)度才是文件的長(zhǎng)度。

把 post() 方法替換為 put() , delete() 等,就可以以PUT或DELETE方式請(qǐng)求資源。

添加Cookie

在請(qǐng)求中傳入Cookie,只需準(zhǔn)備一個(gè)dict傳入cookies參數(shù),如下:

cs = {'token': '12345', 'status': 'working'}r = requests.get(url, cookies=cs)

requests對(duì)Cookie做了特殊處理,使得我們不必解析Cookie就可以輕松獲取指定的Cookie,如下:

r.cookies['token']# 12345指定超時(shí)

要指定超時(shí),傳入以秒為單位的timeout參數(shù)。超時(shí)分為連接超時(shí)和讀取超時(shí),如下:

try: # 3.1秒后連接超時(shí),27秒后讀取超時(shí) r = requests.get(url, timeout=(3.1, 27))except requests.exceptions.RequestException as e: print(e)超時(shí)重連def gethtml(url): i = 0 while i < 3: try: html = requests.get(url, timeout=5).text return html except requests.exceptions.RequestException: i += 1添加代理

同添加headers方法,代理參數(shù)也要是一個(gè)dict,如下:

heads = { 'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}proxy = { 'http': 'http://120.25.253.234:812', 'https' 'https://163.125.222.244:8123'}r = requests.get('https://xintu.baidu.com/', headers=heads, proxies=proxy)

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長(zhǎng)刪除。

轉(zhuǎn)載請(qǐng)注明出處https://1.13.168.162/xintu/9022.html

相關(guān)文章

濟(jì)南做網(wǎng)站公司(濟(jì)南做網(wǎng)站公司排名)

營(yíng)銷(xiāo)型企業(yè)網(wǎng)站一定是為了滿(mǎn)足企業(yè)的某些方面的網(wǎng)絡(luò)營(yíng)銷(xiāo)功能:1、以銷(xiāo)售為主的企業(yè)網(wǎng)站營(yíng)銷(xiāo)功能;以國(guó)內(nèi)外市場(chǎng)開(kāi)放為主的企業(yè)網(wǎng)站營(yíng)銷(xiāo)功能。以實(shí)現(xiàn)企業(yè)經(jīng) 營(yíng)目標(biāo)作為網(wǎng)站建設(shè)的目標(biāo),從而通過(guò)網(wǎng)站這個(gè)平臺(tái)來(lái)實(shí)現(xiàn)...

翔宇網(wǎng)絡(luò)營(yíng)銷(xiāo),三只松鼠營(yíng)銷(xiāo)創(chuàng)意

翔宇探索網(wǎng)絡(luò)發(fā)展新路徑 2008年2月24日,翔宇教育集團(tuán)網(wǎng)絡(luò)教育部門(mén)的部分工作人員在寶應(yīng)中學(xué)召開(kāi)研討會(huì),商討探索集團(tuán)網(wǎng)絡(luò)發(fā)展新路徑,來(lái)自知名網(wǎng)。唐山翔宇網(wǎng)絡(luò)科技有限公司于1998年9月創(chuàng)建,一直專(zhuān)注...

臨清市全網(wǎng)引流推廣(龍網(wǎng)推廣引流)

來(lái)源:光明日?qǐng)?bào)湖北武漢漢口北市場(chǎng)內(nèi)商戶(hù)在直播銷(xiāo)售自家的餐盤(pán)。新華社發(fā)山東即墨服裝批發(fā)市場(chǎng)的銷(xiāo)售員直播銷(xiāo)售服裝。新華社發(fā)【經(jīng)濟(jì)界面】房地產(chǎn)VR實(shí)景看房、學(xué)生上云課堂、基層干部直播賣(mài)農(nóng)產(chǎn)品……受疫情影響臨...

直播間付費(fèi)推廣引流(直播間引流推廣話術(shù))

說(shuō)到直播,直播的方式非常簡(jiǎn)單擁有一部手機(jī)就可以開(kāi)啟直播之路。直播帶貨不僅讓主播通過(guò)直播吸引粉絲打賞也可以帶貨。增加商品的銷(xiāo)售量。那很多新手在沒(méi)有粉絲的基礎(chǔ)下,怎么才能吸引更多人進(jìn)入直播間呢?這里給大家...

商家廣告推廣引流(營(yíng)銷(xiāo)引流推廣)

在以前最普遍直接的方式可能就是發(fā)傳單了,但是發(fā)傳單是效率最慢的,不但費(fèi)用高,而且還不精準(zhǔn),曝光范圍也小,局限性很強(qiáng),浪費(fèi)也大。很多都是客人接過(guò)后直接扔地上了,下面是我算了一下如果要做10萬(wàn)張傳單并且發(fā)...

關(guān)于蘿崗全網(wǎng)引流推廣的信息

新目標(biāo)!新進(jìn)展!昨日《關(guān)于黃埔區(qū) 廣州開(kāi)發(fā)區(qū)2020年國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展計(jì)劃執(zhí)行情況與2021年計(jì)劃草案的報(bào)告》發(fā)布(以下簡(jiǎn)稱(chēng)《報(bào)告》) 2021 黃埔這些Flag立!下!了!交通完善公共交通基礎(chǔ)...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶(hù)時(shí)間

  • 1對(duì)1服務(wù)
    1對(duì)1服務(wù)

    專(zhuān)屬客服對(duì)接咨詢(xún)

  • 持續(xù)更新
    持續(xù)更新

    不斷升級(jí)維護(hù),更好服務(wù)用戶(hù)