最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python解析html提取數(shù)據(jù),并生成word文檔實例解析

 更新時間:2018年01月22日 14:28:24   作者:yukiMark  
這篇文章主要介紹了python解析html提取數(shù)據(jù),并生成word文檔實例解析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

簡介

今天試著用ptyhon做了一個抓取網(wǎng)頁內(nèi)容,并生成word文檔的功能,功能很簡單,做一下記錄以備以后用到。

生成word用到了第三方組件python-docx,所以先進行第三方組件的安裝。由于windows下安裝的python默認不帶setuptools這個模塊,所以要先安裝setuptools這個模塊。

安裝

1、在python官網(wǎng)上找到 https://bootstrap.pypa.io/ez_setup.py  ,把代碼保存到本地并執(zhí)行:  python ez_setup.py

2、下載python-docx  (https://pypi.python.org/pypi/python-docx/0.7.4),下載完成后解壓并進入到  XXX\python-docx-0.7.4 安裝python-docx : python setup.py install

這樣python-docx就安裝成功了,可以用它來操作word文檔了,word文檔的生成參考的這里https://python-docx.readthedocs.org/en/latest/index.html

html解析用到的是sgmllib里的SGMLParser  url內(nèi)容的獲取用到的是urllib、urllib2

實現(xiàn)代碼

# -*- coding: cp936 -*- 
from sgmllib import SGMLParser 
import os 
import sys 
import urllib 
import urllib2 
from docx import Document 
from docx.shared import Inches 
import time 
 
##獲取要解析的url 
class GetUrl(SGMLParser): 
  def __init__(self): 
    SGMLParser.__init__(self) 
    self.start=False 
    self.urlArr=[] 
 
 
  def start_div(self,attr): 
    for name,value in attr: 
      if value=="ChairmanCont Bureau":#頁面js中的固定值 
        self.start=True 
 
 
  def end_div(self): 
    self.start=False 
 
 
  def start_a(self,attr): 
    if self.start: 
      for name,value in attr: 
        self.urlArr.append(value) 
       
 
 
  def getUrlArr(self): 
    return self.urlArr 
   
##解析上面獲取的url,獲取有用數(shù)據(jù) 
class getManInfo(SGMLParser): 
  def __init__(self): 
    SGMLParser.__init__(self) 
    self.start=False 
    self.p=False 
    self.dl=False 
    self.manInfo=[] 
    self.subInfo=[] 
 
  def start_div(self,attr): 
    for name,value in attr: 
      if value=="SpeakerInfo":#頁面js中的固定值 
        self.start=True 
 
  def end_div(self): 
    self.start=False 
 
  def start_p(self,attr): 
    if self.dl: 
      self.p=True 
 
  def end_p(self): 
    self.p=False 
 
  def start_img(self,attr): 
    if self.dl: 
      for name,value in attr: 
        self.subInfo.append(value) 
     
 
 
  def handle_data(self,data): 
    if self.p: 
      self.subInfo.append(data.decode('utf-8')) 
 
 
  def start_dl(self,attr): 
    if self.start: 
      self.dl=True 
 
  def end_dl(self): 
    self.manInfo.append(self.subInfo) 
    self.subInfo=[] 
    self.dl=False 
 
  def getManInfo(self): 
    return self.manInfo 
 
 
 
         
 
urlSource="http://www.XXX" 
sourceData=urllib2.urlopen(urlSource).read() 
 
startTime=time.clock() 
##get urls 
getUrl=GetUrl() 
getUrl.feed(sourceData) 
urlArr=getUrl.getUrlArr() 
getUrl.close() 
print "get url use:" + str((time.clock() - startTime)) 
startTime=time.clock() 
 
 
##get maninfos 
manInfos=getManInfo() 
for url in urlArr:#one url one person 
  data=urllib2.urlopen(url).read() 
  manInfos.feed(data) 
infos=manInfos.getManInfo() 
manInfos.close() 
print "get maninfos use:" + str((time.clock() - startTime)) 
startTime=time.clock() 
 
#word 
saveFile=os.getcwd()+"\\xxx.docx" 
doc=Document() 
##word title 
doc.add_heading("HEAD".decode('gbk'),0) 
p=doc.add_paragraph("HEADCONTENT:".decode('gbk')) 
 
 
##write info 
for infoArr in infos: 
  i=0 
  for info in infoArr: 
    if i==0:##img url 
      arr1=info.split('.') 
      suffix=arr1[len(arr1)-1] 
      arr2=info.split('/') 
      preffix=arr2[len(arr2)-2] 
      imgFile=os.getcwd()+"\\imgs\\"+preffix+"."+suffix 
      if not os.path.exists(os.getcwd()+"\\imgs"): 
        os.mkdir(os.getcwd()+"\\imgs") 
      imgData=urllib2.urlopen(info).read() 
 
      try: 
        f=open(imgFile,'wb') 
        f.write(imgData) 
        f.close() 
        doc.add_picture(imgFile,width=Inches(1.25)) 
        os.remove(imgFile) 
      except Exception as err: 
        print (err) 
  
       
    elif i==1: 
      doc.add_heading(info+":",level=1) 
    else: 
      doc.add_paragraph(info,style='ListBullet') 
    i=i+1 
 
   
doc.save(saveFile) 
print "word use:" + str((time.clock() - startTime)) 

總結(jié)

以上就是本文關(guān)于python解析html提取數(shù)據(jù),并生成word文檔實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • PyTorch之圖像和Tensor填充的實例

    PyTorch之圖像和Tensor填充的實例

    今天小編就為大家分享一篇PyTorch之圖像和Tensor填充的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python重寫方法和重寫特殊構(gòu)造方法

    python重寫方法和重寫特殊構(gòu)造方法

    這篇文章主要介紹了python重寫方法和重寫特殊構(gòu)造方法,對于父類的方法,只要他不符合子類模擬的實物的行為,都可以進行重寫,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07
  • Python如何定義有可選參數(shù)的元類

    Python如何定義有可選參數(shù)的元類

    這篇文章主要介紹了Python如何定義有可選參數(shù)的元類,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python實現(xiàn)多任務(wù)進程示例

    Python實現(xiàn)多任務(wù)進程示例

    大家好,本篇文章主要講的是Python實現(xiàn)多任務(wù)進程示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼

    pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼

    今天小編就為大家分享一篇pandas實現(xiàn)excel中的數(shù)據(jù)透視表和Vlookup函數(shù)功能代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python爬蟲入門教程--正則表達式完全指南(五)

    python爬蟲入門教程--正則表達式完全指南(五)

    要想做爬蟲,不可避免的要用到正則表達式,如果是簡單的字符串處理,類似于split,substring等等就足夠了,可是涉及到比較復(fù)雜的匹配,當然是正則的天下,下面這篇文章主要給大家介紹了python爬蟲之正則表達式的相關(guān)資料,需要的朋友可以參考下。
    2017-05-05
  • Python腳本實現(xiàn)自動刪除C盤臨時文件夾

    Python腳本實現(xiàn)自動刪除C盤臨時文件夾

    在日常使用電腦的過程中,臨時文件夾往往會積累大量的無用數(shù)據(jù),占用寶貴的磁盤空間,下面我們就來看看Python如何通過腳本實現(xiàn)自動刪除C盤臨時文件夾吧
    2025-01-01
  • Python中深淺拷貝的區(qū)別詳細分析

    Python中深淺拷貝的區(qū)別詳細分析

    深拷貝和淺拷貝都是對原對象的拷貝,都會生成一個看起來相同的對象,下面這篇文章主要給大家介紹了關(guān)于Python中深淺拷貝的區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Python基于checksum計算文件是否相同的方法

    Python基于checksum計算文件是否相同的方法

    這篇文章主要介紹了Python基于checksum計算文件是否相同的方法,涉及Python針對二進制文件的讀取與判定技巧,需要的朋友可以參考下
    2015-07-07
  • Python 完美解決 Import “模塊“ could not be resolved ...的問題

    Python 完美解決 Import “模塊“ could not&n

    這篇文章主要介紹了Python 完美解決 Import “模塊“ could not be resolved ...,本文給大家分享問題原因及解決方法,需要的朋友可以參考下
    2022-11-11

最新評論

顺义区| 西林县| 察哈| 饶平县| 灵石县| 黑河市| 和平县| 莲花县| 渭源县| 淮北市| 长丰县| 滦南县| 公主岭市| 新源县| 依安县| 南漳县| 石城县| 淳安县| 天峻县| 罗甸县| 双辽市| 天全县| 太仆寺旗| 海原县| 天门市| 丰镇市| 中西区| 嘉禾县| 静安区| 通海县| 康保县| 新民市| 静宁县| 陵水| 武清区| 南投市| 沙洋县| 永安市| 宕昌县| 行唐县| 神木县|