国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的 N 種方法

2019-11-25 16:12:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這兩天學(xué)習(xí)了python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的方法,發(fā)現(xiàn)了很多種方法,所以,今天添加一點(diǎn)小筆記。

1、最簡(jiǎn)單

import urllib.requestresponse = urllib.request.urlopen('http://python.org/')html = response.read() 

2、使用 Request

import urllib.request req = urllib.request.Request('http://python.org/')response = urllib.request.urlopen(req)the_page = response.read()

3、發(fā)送數(shù)據(jù)

#! /usr/bin/env python3 import urllib.parseimport urllib.request url = 'http://localhost/login.php'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'values = {     'act' : 'login',     'login[email]' : 'yzhang@i9i8.com',     'login[password]' : '123456'     } data = urllib.parse.urlencode(values)req = urllib.request.Request(url, data)req.add_header('Referer', 'http://www.python.org/')response = urllib.request.urlopen(req)the_page = response.read() print(the_page.decode("utf8"))

4、發(fā)送數(shù)據(jù)和header

#! /usr/bin/env python3 import urllib.parseimport urllib.request url = 'http://localhost/login.php'user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'values = {     'act' : 'login',     'login[email]' : 'yzhang@i9i8.com',     'login[password]' : '123456'     }headers = { 'User-Agent' : user_agent } data = urllib.parse.urlencode(values)req = urllib.request.Request(url, data, headers)response = urllib.request.urlopen(req)the_page = response.read() print(the_page.decode("utf8"))

5、http 錯(cuò)誤

#! /usr/bin/env python3 import urllib.request req = urllib.request.Request('http://www.python.org/fish.html')try:  urllib.request.urlopen(req)except urllib.error.HTTPError as e:  print(e.code)  print(e.read().decode("utf8"))

6、異常處理1

#! /usr/bin/env python3 from urllib.request import Request, urlopenfrom urllib.error import URLError, HTTPErrorreq = Request("http://twitter.com/")try:  response = urlopen(req)except HTTPError as e:  print('The server couldn/'t fulfill the request.')  print('Error code: ', e.code)except URLError as e:  print('We failed to reach a server.')  print('Reason: ', e.reason)else:  print("good!")  print(response.read().decode("utf8"))

7、異常處理2

#! /usr/bin/env python3 from urllib.request import Request, urlopenfrom urllib.error import URLErrorreq = Request("http://twitter.com/")try:  response = urlopen(req)except URLError as e:  if hasattr(e, 'reason'):    print('We failed to reach a server.')    print('Reason: ', e.reason)  elif hasattr(e, 'code'):    print('The server couldn/'t fulfill the request.')    print('Error code: ', e.code)else:  print("good!")  print(response.read().decode("utf8"))

8、HTTP 認(rèn)證

#! /usr/bin/env python3 import urllib.request # create a password managerpassword_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm() # Add the username and password.# If we knew the realm, we could use it instead of None.top_level_url = "https://cms.tetx.com/"password_mgr.add_password(None, top_level_url, 'yzhang', 'cccddd') handler = urllib.request.HTTPBasicAuthHandler(password_mgr) # create "opener" (OpenerDirector instance)opener = urllib.request.build_opener(handler) # use the opener to fetch a URLa_url = "https://cms.tetx.com/"x = opener.open(a_url)print(x.read()) # Install the opener.# Now all calls to urllib.request.urlopen use our opener.urllib.request.install_opener(opener) a = urllib.request.urlopen(a_url).read().decode('utf8')print(a)

9、使用代理

#! /usr/bin/env python3 import urllib.request proxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})opener = urllib.request.build_opener(proxy_support)urllib.request.install_opener(opener) a = urllib.request.urlopen("http://g.cn").read().decode("utf8")print(a)

10、超時(shí)

#! /usr/bin/env python3 import socketimport urllib.request # timeout in secondstimeout = 2socket.setdefaulttimeout(timeout) # this call to urllib.request.urlopen now uses the default timeout# we have set in the socket modulereq = urllib.request.Request('http://twitter.com/')a = urllib.request.urlopen(req).read()print(a)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 林甸县| 招远市| 建平县| 云南省| 定南县| 济宁市| 饶平县| 樟树市| 清苑县| 唐海县| 海宁市| 抚松县| 保山市| 彭阳县| 陕西省| 新兴县| 柏乡县| 太仆寺旗| 鄱阳县| 玉龙| 平阴县| 广宁县| 平谷区| 威远县| 大同市| 平阴县| 盱眙县| 来安县| 广德县| 太仆寺旗| 读书| 宕昌县| 金秀| 从化市| 防城港市| 元朗区| 女性| 女性| 饶平县| 菏泽市| 余干县|