亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年05月02日 14:21:54   作者:方倍工作室  
這兩天學(xué)習(xí)了python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的方法,發(fā)現(xiàn)了很多種方法,所以,今天添加一點(diǎn)小筆記。

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

1、最簡(jiǎn)單

import urllib.request
response = 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.parse
import 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.parse
import 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, urlopen
from urllib.error import URLError, HTTPError
req = 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, urlopen
from urllib.error import URLError
req = 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 manager
password_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 URL
a_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 socket
import urllib.request
 
# timeout in seconds
timeout = 2
socket.setdefaulttimeout(timeout)
 
# this call to urllib.request.urlopen now uses the default timeout
# we have set in the socket module
req = urllib.request.Request('http://twitter.com/')
a = urllib.request.urlopen(req).read()
print(a)

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

相關(guān)文章

  • 詳解pytorch中squeeze()和unsqueeze()函數(shù)介紹

    詳解pytorch中squeeze()和unsqueeze()函數(shù)介紹

    這篇文章主要介紹了詳解pytorch中squeeze()和unsqueeze()函數(shù)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python+Selenium隨機(jī)生成手機(jī)驗(yàn)證碼并檢查頁(yè)面上是否彈出重復(fù)手機(jī)號(hào)碼提示框

    Python+Selenium隨機(jī)生成手機(jī)驗(yàn)證碼并檢查頁(yè)面上是否彈出重復(fù)手機(jī)號(hào)碼提示框

    這篇文章主要介紹了Python+Selenium隨機(jī)生成手機(jī)驗(yàn)證碼并檢查頁(yè)面上是否彈出重復(fù)手機(jī)號(hào)碼提示框,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Python Selenium操作Cookie的實(shí)例方法

    Python Selenium操作Cookie的實(shí)例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于Python Selenium操作Cookie的實(shí)例方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • 最新python下載安裝及環(huán)境搭建教程

    最新python下載安裝及環(huán)境搭建教程

    最近小編收到了好多小伙伴的吐槽稱不會(huì)下載安裝python,博主聽(tīng)到后非常的扎心,經(jīng)過(guò)博主幾天的熬夜加班,給大家出了一套python下載安裝以及pycharm環(huán)境搭建的完整教程,一起來(lái)看看吧
    2024-02-02
  • 利用Python循環(huán)(包括while&for)各種打印九九乘法表的實(shí)例

    利用Python循環(huán)(包括while&for)各種打印九九乘法表的實(shí)例

    下面小編就為大家?guī)?lái)一篇利用Python循環(huán)(包括while&for)各種打印九九乘法表的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助
    2017-11-11
  • Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用

    Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用

    本文主要介紹了Django博客系統(tǒng)注冊(cè)之創(chuàng)建用戶模塊應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 全面剖析Python的Django框架中的項(xiàng)目部署技巧

    全面剖析Python的Django框架中的項(xiàng)目部署技巧

    這篇文章主要全面剖析了Python的Django框架的部署技巧,包括Fabric等自動(dòng)化部署和建立單元測(cè)試等方面,強(qiáng)烈推薦!需要的朋友可以參考下
    2015-04-04
  • python通用數(shù)據(jù)庫(kù)操作工具 pydbclib的使用簡(jiǎn)介

    python通用數(shù)據(jù)庫(kù)操作工具 pydbclib的使用簡(jiǎn)介

    這篇文章主要介紹了python通用數(shù)據(jù)庫(kù)操作工具 pydbclib的使用簡(jiǎn)介,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python中的類屬性與實(shí)例屬性的區(qū)別和用法

    Python中的類屬性與實(shí)例屬性的區(qū)別和用法

    在Python中,類屬性和實(shí)例屬性是面向?qū)ο缶幊痰暮诵母拍钪?它們?cè)试S存儲(chǔ)和管理對(duì)象的數(shù)據(jù),并影響對(duì)象的行為,本篇文章中,會(huì)學(xué)習(xí)到類屬性和實(shí)例屬性的概念、區(qū)別以及如何在Python中使用它們,同時(shí)提供大量的示例代碼來(lái)更好地理解它們的作用和用法,需要的朋友可以參考下
    2023-11-11
  • python基礎(chǔ)之定義類和對(duì)象詳解

    python基礎(chǔ)之定義類和對(duì)象詳解

    這篇文章主要為大家詳細(xì)介紹了python的定義類和對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論