真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

PythonHTML解析模塊HTMLParser用法分析【爬蟲工具】-創(chuàng)新互聯(lián)

本文實例講述了Python HTML解析模塊HTMLParser用法。分享給大家供大家參考,具體如下:

在西峽等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網站建設、成都網站制作 網站設計制作定制網站建設,公司網站建設,企業(yè)網站建設,品牌網站制作,成都全網營銷,成都外貿網站制作,西峽網站建設費用合理。

簡介

先簡略介紹一下。實際上,HTMLParser是python用來解析HTML的內置模塊。它可以分析出HTML里面的標簽、數據等等,是一種處理HTML的簡便途徑。HTMLParser采用的是一種事件驅動的模式,當HTMLParser找到一個特定的標記時,它會去調用一個用戶定義的函數,以此來通知程序處理。它主要的用戶回調函數的命名都是以"handle_"開頭的,都是HTMLParser的成員函數。當我們使用時,就從HTMLParser派生出新的類,然后重新定義這幾個以"handle_"開頭的函數即可。這幾個函數包括:

(1)handle_startendtag    處理開始標簽和結束標簽(即單標簽)
(2)handle_starttag          處理開始標簽,比如
(3)handle_endtag           處理結束標簽,比如

(4)handle_charref           處理特殊字符串,就是以&#開頭的,一般是內碼表示的字符
(5)handle_entityref        處理一些特殊字符,以&開頭的,比如  
(6)handle_data              處理數據,就是data中間的那些數據
(7)handle_comment          處理注釋
(8)handle_decl               處理(9)handle_pi                   處理形如<?instruction>的東西

實例

OK,廢話少說,直接上手,來一個簡單的爬蟲實例——抓取貼吧圖片。

from html.parser import HTMLParser
from urllib import request
class MyHTMLParser(HTMLParser):   # 創(chuàng)建HTML解析類
  def __init__(self):
    HTMLParser.__init__(self)
    self.gifs_urls = []     # 創(chuàng)建列表,保存gif
    self.jpgs_urls = []     # 創(chuàng)建列表,保存jpg
  # 重寫HTMLParser中的內置方法
  def handle_starttag(self, tags, attrs): # 處理起始標記
    if tags == 'img':  # 處理圖片
      for attr in attrs:
        for t in attr:
          if 'gif' in t and 'https' in t:
            self.gifs_urls.append(t)  # 添加到gif列表
          elif 'jpg' in t and 'https' in t:
            self.jpgs_urls.append(t)  # 添加到jpg列表
          else:
            pass
  # 自定義的方法
  def get_gifs(self):   # 返回gif列表
    return self.gifs_urls
  def get_jpgs(self):   # 返回jpg列表
    return self.jpgs_urls
  # 自定義的方法,獲取頁面
  def getHTML(self,url):
    req=request.Request(url,method='GET')
    html=request.urlopen(req,timeout=30)
    return html.read()
  # 自定義的方法,批量下載圖片
  def downImgs(self,img_urls,n=10,path='Image/'):
    count=1
    for url in img_urls:
      request.urlretrieve(url=url,filename='{0}{1}{2}'.format(path,count,'.jpg'))
      count=count+1
      if count == n + 1:
        print('共下載%d張圖片' %(n))
        return
if __name__ == '__main__':
  Url = 'http://tieba.baidu.com/p/2256306796'
  HtmlParser=MyHTMLParser()
  Html=HtmlParser.getHTML(Url)
  # print(Html)
  HtmlParser.feed(str(Html))   #開始解析HTML,自動調用HTMLParser中的內置方法
  HtmlParser.downImgs(HtmlParser.get_jpgs())


新聞名稱:PythonHTML解析模塊HTMLParser用法分析【爬蟲工具】-創(chuàng)新互聯(lián)
地址分享:http://weahome.cn/article/jdoop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部