062 Python必備庫-從Web解析到網絡空間

1、概述

  • Python庫之網絡爬蟲
  • Python庫之Web信息提取
  • Python庫之Web網站開發
  • Python庫之網絡應用開發

2、Python庫之網絡爬蟲

2.1 Requests

Requests: 最友好的網絡爬蟲功能庫,http://www.python-requests.org/python

  • 提供了簡單易用的類HTTP協議網絡爬蟲功能
  • 支持鏈接池、SSL、Cookies、HTTP(S)代理等
  • Python最主要的頁面級網絡爬蟲功能庫

062-從Web解析到網絡空間-01.jpg?x-oss-process=style/watermark

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.orggit

  • 提供了構建網絡爬蟲系統的框架功能,功能半成品
  • 支持批量和定時網頁爬取、提供數據處理流程等
  • Python最主要且最專業的網絡爬蟲框架

062-從Web解析到網絡空間-02.jpg?x-oss-process=style/watermark

2.3 pyspider

pyspider: 強大的Web頁面爬取系統,http://docs.pyspider.orggithub

  • 提供了完整的網頁爬取系統構建功能
  • 支持數據庫後端、消息隊列、優先級、分佈式架構等
  • Python重要的網絡爬蟲類第三方庫pyspider: 強大的Web頁面爬取系統

062-從Web解析到網絡空間-03.jpg?x-oss-process=style/watermark

3、Python庫之Web信息提取

3.1 Beautiful Soup

Beautiful Soup: HTML和XML的解析庫,https://www.crummy.com/software/BeautifulSoup/bs4web

  • 提供瞭解析HTML和XML等Web信息的功能
  • 又名beautifulsoup4或bs4,能夠加載多種解析引擎
  • 常與網絡爬蟲庫搭配使用,如Scrapy、requests等

062-從Web解析到網絡空間-04.jpg?x-oss-process=style/watermark

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]

4、Python庫之Web網站開發

4.1 Django

Django: 最流行的Web應用框架,https://www.djangoproject.comdjango

  • 提供了構建Web系統的基本應用框架
  • MTV模式:模型(model)、模板(Template)、視圖(Views)
  • Python最重要的Web應用框架,略微複雜的應用框架

062-從Web解析到網絡空間-05.jpg?x-oss-process=style/watermark

4.2 Pyramid

Pyramid: 規模適中的Web應用框架,https://trypyramid.com/flask

  • 提供了簡單方便構建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

062-從Web解析到網絡空間-06.jpg?x-oss-process=style/watermark

from flask import Flask 

app = Flask(__name__) 

@app.route('/')
def hello_world():
    return 'Hello, World!'

5、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應用的最主要方式

062-從Web解析到網絡空間-07.jpg?x-oss-process=style/watermark

5.3 MyQR

MyQR: 二維碼生成第三方庫,https://github.com/sylnsfar/qrcode

  • 提供了生成二維碼的系列功能
  • 基本二維碼、藝術二維碼和動態二維碼

062-從Web解析到網絡空間-08.jpg?x-oss-process=style/watermark

6、單元小結

6.1 從Web解析到網絡空間

  • Requests、Scrapy、pyspider
  • Beautiful Soup、Re、Python-Goose
  • Django、Pyramid、Flask
  • WeRobot、aip、MyQR
相關文章
相關標籤/搜索