国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python網(wǎng)絡爬蟲項目:內容提取器的定義

Python網(wǎng)絡爬蟲項目:內容提取器的定義

2020-09-11 09:19fullerhua Python

本篇文章主要介紹了Python網(wǎng)絡爬蟲項目,這能有效的節(jié)省程序員的時間,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

1. 項目背景

在python 即時網(wǎng)絡爬蟲項目啟動說明中我們討論一個數(shù)字:程序員浪費在調測內容提取規(guī)則上的時間,從而我們發(fā)起了這個項目,把程序員從繁瑣的調測規(guī)則中解放出來,投入到更高端的數(shù)據(jù)處理工作中。

2. 解決方案

為了解決這個問題,我們把影響通用性和工作效率的提取器隔離出來,描述了如下的數(shù)據(jù)處理流程圖:

Python網(wǎng)絡爬蟲項目:內容提取器的定義

圖中“可插拔提取器”必須很強的模塊化,那么關鍵的接口有:

  1. 標準化的輸入:以標準的HTML DOM對象為輸入
  2. 標準化的內容提?。菏褂脴藴实膞slt模板提取網(wǎng)頁內容
  3. 標準化的輸出:以標準的XML格式輸出從網(wǎng)頁上提取到的內容
  4. 明確的提取器插拔接口:提取器是一個明確定義的類,通過類方法與爬蟲引擎模塊交互

3. 提取器代碼

可插拔提取器是即時網(wǎng)絡爬蟲項目的核心組件,定義成一個類: gsExtractor

python源代碼文件及其說明文檔請從 github 下載

使用模式是這樣的:

  1. 實例化一個gsExtractor對象
  2. 為這個對象設定xslt提取器,相當于把這個對象配置好(使用三類setXXX()方法)
  3. 把html dom輸入給它,就能獲得xml輸出(使用extract()方法)

下面是這個gsExtractor類的源代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/python
# -*- coding: utf-8 -*-
# 模塊名: gooseeker
# 類名: gsExtractor
# Version: 2.0
# 說明: html內容提取器
# 功能: 使用xslt作為模板,快速提取HTML DOM中的內容。
# released by 集搜客(http://www.gooseeker.com) on May 18, 2016
# github: https://github.com/FullerHua/jisou/core/gooseeker.py
 
from urllib import request
from urllib.parse import quote
from lxml import etree
import time
 
class gsExtractor(object):
  def _init_(self):
    self.xslt = ""
  # 從文件讀取xslt
  def setXsltFromFile(self , xsltFilePath):
    file = open(xsltFilePath , 'r' , encoding='UTF-8')
    try:
      self.xslt = file.read()
    finally:
      file.close()
  # 從字符串獲得xslt
  def setXsltFromMem(self , xsltStr):
    self.xslt = xsltStr
  # 通過GooSeeker API接口獲得xslt
  def setXsltFromAPI(self , APIKey , theme, middle=None, bname=None):
    apiurl = "http://www.gooseeker.com/api/getextractor?key="+ APIKey +"&theme="+quote(theme)
    if (middle):
      apiurl = apiurl + "&middle="+quote(middle)
    if (bname):
      apiurl = apiurl + "&bname="+quote(bname)
    apiconn = request.urlopen(apiurl)
    self.xslt = apiconn.read()
  # 返回當前xslt
  def getXslt(self):
    return self.xslt
  # 提取方法,入?yún)⑹且粋€HTML DOM對象,返回是提取結果
  def extract(self , html):
    xslt_root = etree.XML(self.xslt)
    transform = etree.XSLT(xslt_root)
    result_tree = transform(html)
    return result_tree

4. 用法示例
下面是一個示例程序,演示怎樣使用gsExtractor類提取GooSeeker官網(wǎng)的bbs帖子列表。本示例有如下特征

  1. 提取器所用的xslt模板提前放在文件中:xslt_bbs.xml
  2. 僅作為示例,實際使用場景中,xslt來源有多個,最主流的來源是GooSeeker平臺上的api
  3. 在控制臺界面上打印出提取結果

下面是源代碼,都可從 github 下載

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#-*_coding:utf8-*-
# 使用gsExtractor類的示例程序
# 訪問集搜客論壇,以xslt為模板提取論壇內容
# xslt保存在xslt_bbs.xml中
from urllib import request
from lxml import etree
from gooseeker import gsExtractor
 
# 訪問并讀取網(wǎng)頁內容
url = "http://www.gooseeker.com/cn/forum/7"
conn = request.urlopen(url)
doc = etree.HTML(conn.read())
 
# 生成xsltExtractor對象
bbsExtra = gsExtractor()
# 調用set方法設置xslt內容
bbsExtra.setXsltFromFile("xslt_bbs.xml")
# 調用extract方法提取所需內容
result = bbsExtra.extract(doc)
# 顯示提取結果
print(str(result))

提取結果如下圖所示:

Python網(wǎng)絡爬蟲項目:內容提取器的定義

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品一区二区三区成人精品 | 91亚洲国产| 国产精品一区二区视频 | 国内精品视频 | 亚洲福利片 | 一级黄色毛片免费观看 | 国产精品久久久久久久美男 | 久久精品91 | 成人激情在线观看 | 黄色毛片一级片 | 亚洲精品视频免费 | 欧美激情在线精品一区二区三区 | 国产精品久久国产精品 | 国产在线色 | 久久久久久婷婷 | 欧美中文 | 欧美成人免费在线 | 国产一区二区三区四 | 亚洲日韩中文字幕一区 | 我要看日本黄色小视频 | 国产精品1区2区3区 久久免费一区 | 一区二区三区国产 | 波多野结衣中文字幕一区二区三区 | 欧美日韩国产一区二区三区 | 在线一区观看 | 欧美不卡视频 | 亚洲天堂一区二区 | 亚洲国产成人av好男人在线观看 | 成人免费毛片在线观看 | 日韩av免费在线播放 | 日韩欧美在线观看视频 | 九九九久久国产免费 | 精品国产一区二区三区四区 | 中文字幕亚洲精品 | 亚洲在线电影 | 欧美日韩亚洲一区二区 | 久久亚洲精品裙底抄底 | 中文字幕日韩欧美一区二区三区 | 免费a级毛片在线看 | 99久久综合精品五月天 | 最好观看的2018中文 |