062 Python必備庫-從Web解析到網路空間
阿新 • • 發佈:2020-12-13
目錄
一、概述
- Python庫之網路爬蟲
- Python庫之Web資訊提取
- Python庫之Web網站開發
- Python庫之網路應用開發
二、Python庫之網路爬蟲
2.1 Requests
Requests: 最友好的網路爬蟲功能庫,http://www.python-requests.org/
- 提供了簡單易用的類HTTP協議網路爬蟲功能
- 支援連線池、SSL、Cookies、HTTP(S)代理等
- Python最主要的頁面級網路爬蟲功能庫
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
r.headers['content-type']
r.encoding
r.text
2.2 Scrapy
Scrapy: 優秀的網路爬蟲框架,Python資料分析高層次應用庫,https://scrapy.org
- 提供了構建網路爬蟲系統的框架功能,功能半成品
- 支援批量和定時網頁爬取、提供資料處理流程等
- Python最主要且最專業的網路爬蟲框架
2.3 pyspider
pyspider: 強大的Web頁面爬取系統,http://docs.pyspider.org
- 提供了完整的網頁爬取系統構建功能
- 支援資料庫後端、訊息佇列、優先順序、分散式架構等
- Python重要的網路爬蟲類第三方庫pyspider: 強大的Web頁面爬取系統
三、Python庫之Web資訊提取
3.1 Beautiful Soup
Beautiful Soup: HTML和XML的解析庫,https://www.crummy.com/software/BeautifulSoup/bs4
- 提供瞭解析HTML和XML等Web資訊的功能
- 又名beautifulsoup4或bs4,可以載入多種解析引擎
- 常與網路爬蟲庫搭配使用,如Scrapy、requests等
3.2 Re
Re: 正則表示式解析和處理功能庫,https://docs.python.org/3.6/library/re.html
- 提供了定義和解析正則表示式的一批通用功能
- 可用於各類場景,包括定點的Web資訊提取
- Python最主要的標準庫之一,無需安裝
3.3 Python-Goose
Python-Goose: 提取文章型別Web頁面的功能庫,https://github.com/grangier/python-goose
- 提供了對Web頁面中文章資訊/視訊等元資料的提取功能
- 針對特定型別Web頁面,應用覆蓋面較廣
- Python最主要的Web資訊提取庫
from goose import Goose
url = 'http://www.elmundo.es/elmundo/2012/10/28/espana/1351388909.html'
g = Goose({'use_meta_language': False,'target_language':'es'})
article = g.extract(url=url)
article.cleaned_text[:150]
四、Python庫之Web網站開發
4.1 Django
Django: 最流行的Web應用框架,https://www.djangoproject.com
- 提供了構建Web系統的基本應用框架
- MTV模式:模型(model)、模板(Template)、檢視(Views)
- Python最重要的Web應用框架,略微複雜的應用框架
4.2 Pyramid
Pyramid: 規模適中的Web應用框架,https://trypyramid.com/
- 提供了簡單方便構建Web系統的應用框架
- 不大不小,規模適中,適合快速構建並適度擴充套件類應用
- Python產品級Web應用框架,起步簡單可擴充套件性好
# 10行左右Hello Word程式
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def hello_world(request):
return Response('Hello World')
if __name__ == '__main__':
with Configurator() as config:
config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 6543, app)
server.serve_forever()
4.3 Flask
Flask: Web應用開發微框架,http://flask.pocoo.org
- 提供了最簡單構建Web系統的應用框架
- 特點是:簡單、規模小、快速
- Django > Pyramid > Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
五、Python庫之網路應用開發
5.1 WeRoBot
WeRoBot: 微信公眾號開發框架,https://github.com/offu/WeRoBot
- 提供瞭解析微信伺服器訊息及反饋訊息的功能
- 建立微信機器人的重要技術手段
# 對微信每個訊息反饋一個Hello World
import werobot
robot = werobot.WeRoBot(token='tokenhere')
@robot.handler
def hello(message):
return 'Hello World!'
5.2 aip
aip: 百度AI開放平臺介面,https://github.com/offu/WeRoBot
- 提供了訪問百度AI服務的Python功能介面
- 語音、人臉、OCR、NLP、知識圖譜、影象搜尋等領域
- Python百度AI應用的最主要方式
5.3 MyQR
MyQR: 二維碼生成第三方庫,https://github.com/sylnsfar/qrcode
- 提供了生成二維碼的系列功能
- 基本二維碼、藝術二維碼和動態二維碼
六、單元小結
6.1 從Web解析到網路空間
- Requests、Scrapy、pyspider
- Beautiful Soup、Re、Python-Goose
- Django、Pyramid、Flask
- WeRobot、aip、MyQR