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

首頁 > 編程 > Python > 正文

python3實現抓取網頁資源的 N 種方法

2020-02-16 01:28:54
字體:
來源:轉載
供稿:網友

這兩天學習了python3實現抓取網頁資源的方法,發現了很多種方法,所以,今天添加一點小筆記。

1、最簡單

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、發送數據

#! /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、發送數據和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 錯誤

#! /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 認證

#! /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)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邮市| 富阳市| 固镇县| 奎屯市| 黄山市| 张家界市| 扎鲁特旗| 丘北县| 永安市| 琼结县| 科技| 定远县| 类乌齐县| 河北省| 沂源县| 罗甸县| 区。| 独山县| 渑池县| 灵川县| 亳州市| 通州区| 璧山县| 普定县| 临海市| 阿图什市| 吴川市| 台北县| 万荣县| 茂名市| 广安市| 莎车县| 太仓市| 廉江市| 丹江口市| 宣武区| 江都市| 紫金县| 兴城市| 安龙县| 榆林市|