麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

lxml解析html時,檢驗XPath

2019-11-11 06:35:17
字體:
供稿:網(wǎng)友

這兩天在研究Scrapy,在遇到用Xpath提出時,需要有Chrome的XPath helper,但老是出現(xiàn)錯誤。廢話少說,還是先把測試網(wǎng)頁保存到本地,逐步的測試提取。

測試文本text.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>測試-常規(guī)方法</title></head><body><div id="content"> <ul id="useful"> <li>這是第一條信息</li> <li>這是第二條信息</li> <li>這是第三條信息</li> </ul> <ul id="useless"> <li>不需要的信息1</li> <li>不需要的信息2</li> <li>不需要的信息3</li> </ul> <div id="url"> <a >極客學(xué)院</a> <a title="極客學(xué)院課程庫">點我打開課程庫</a> </div></div><div id="test-0">大家好!</div><div id="test-1">需要的內(nèi)容1</div><div id="test-2">需要的內(nèi)容2</div><div id="testfault">需要的內(nèi)容3</div><div id="tiger"> 我左青龍, <span id="tiger2"> 右白虎, <ul> 上朱雀, <li>下玄武。</li> </ul> 老牛在當(dāng)中, </span> 龍頭在胸口。</div><div id="test-3">美女, <font color=red>你的微信是多少?</font></div></body></html>

使用XPath對相關(guān)內(nèi)容的提取

# -*- coding: utf-8 -*-from lxml import etreef = open('text.html', 'r',encoding="utf-8")html = f.read()#PRint (html)f.close()selector = etree.HTML(html)

selector.xpath提取后為list

#提取單個文本content = selector.xpath('//div[@id="test-0"]/text()')print (content)

[‘大家好!’]

#提取多個文本content = selector.xpath('//ul[@id="useful"]/li/text()')print (content)for each in content: print (each)

結(jié)果為: 這是第一條信息 這是第二條信息 這是第三條信息

#提取屬性link = selector.xpath('//a/@href')for each in link: print (each)

結(jié)果為: http://jikexueyuan.com http://jikexueyuan.com/sourse/

#提取titletitle = selector.xpath('//a/@title')print (title[0])

結(jié)果為: 極客學(xué)院課程庫

# 以相同的字符開頭 starts-with(@屬性名稱,屬性字符相同部分)content = selector.xpath('//div[starts-with(@id,"test")]/text()')for each in content: print (each)

結(jié)果為: 大家好! 需要的內(nèi)容1 需要的內(nèi)容2 需要的內(nèi)容3 美女,

#標(biāo)簽套標(biāo)簽,取出所有的標(biāo)簽data = selector.xpath('//div[@id="test-3"]')[0]info = data.xpath('string(.)')info=str(info)# info為<class 'lxml.etree._ElementUnicodeResult'>,轉(zhuǎn)為字符content=" ".join(info.split())print (content)data = selector.xpath('//div[@id="tiger"]')[0]info = data.xpath('string(.)')info=str(info)# info為<class 'lxml.etree._ElementUnicodeResult'>,轉(zhuǎn)為字符content=" ".join(info.split())print (content)

結(jié)果為: 美女, 你的微信是多少? 我左青龍, 右白虎, 上朱雀, 下玄武。 老牛在當(dāng)中, 龍頭在胸口。

注:這里我將list轉(zhuǎn)為str。網(wǎng)上有許多其他方法加extract()我嘗試后,發(fā)現(xiàn)均出錯。 另外,發(fā)現(xiàn)網(wǎng)上的代碼有問題。

data = selector.xpath('//div[@id="test3"]')info = data.xpath('string(.)').extract()[0]這樣,就可以把“我左青龍,右白虎,上朱雀,下玄武。老牛在當(dāng)中,龍頭在胸口”整個句子提取出來,賦值給info變量。

在IDE中直接測試

from lxml import etreetext=""" <div class="bd doulist-subject"> <div class="source"> 來自:豆瓣讀書 </div> <div class="post"> <a target="_blank"> <img width="100" src="https://img1.doubanio.com/lpic/s8869768.jpg"> </a> </div> <div class="title"> <a target="_blank"> 萬物生光輝 </a> </div> <div class="rating"> <span class="allstar50"></span> <span class="rating_nums">9.4</span> <span>(738人評價)</span> </div> <div class="abstract"> " 作者: [英] 吉米·哈利 <br> " 出版社: 中國城市出版社 <br> " 出版年: 2012-3 " </div> </div> """selector = etree.HTML(text)title = selector.xpath('//div[@class="title"]/a/text()')title=title[0]title=title.replace(" ","").replace("http://n","").replace("http://r","")title=title.strip()print (title)rate = selector.xpath('//span[@class="rating_nums"]/text()')rate=rate[0]rate=rate.replace(" ","").replace("http://n","").replace("http://r","")print (rate)author = selector.xpath('//div[@class="abstract"]/text()')author=author[0]author=author.replace(" ","").replace("http://n","").replace("http://r","").replace('"',"")author=author.strip()print (author)

參考如下網(wǎng)頁,非常感謝: http://blog.csdn.net/betabin/article/details/24392369 http://blog.csdn.net/skyeyesxy/article/details/50838003 http://blog.chinaunix.net/uid-13869856-id-5747417.html https://segmentfault.com/q/1010000006053119/a-1020000006053611


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品一区二区免费 | 精品亚洲夜色av98在线观看 | 成人毛片免费视频 | 国产精品久久久久久久久久久久久久久久 | 国产精品69久久 | 亚洲国产高清一区 | 在线播放免费播放av片 | 欧美精品色精品一区二区三区 | 特级毛片全部免费播放器 | 国产激情视频在线 | 亚洲小视频在线播放 | 日本免费aaa观看 | 史上最强炼体老祖动漫在线观看 | jizzjizz中国人少妇中文 | 久久艹一区 | 久草免费资源视频 | 中文日韩欧美 | 欧美精品成人一区二区在线观看 | 国产91精品久久久久久 | 成人国产在线看 | 成人宗合网 | 精品二区在线观看 | 91九色国产视频 | 一级做受大片免费视频 | 黄色网址免费在线播放 | 91精品片 | 欧美日韩亚洲另类 | 欧美一级淫片免费播放口 | 久久国产精品影视 | 欧美黄一区| 91 成人| 久久综合久久综合久久综合 | 麻豆视频在线播放 | 黄色大片高清 | 久久综合久久综合久久 | 九九热精 | 国产精品久久久久久久久久免 | 精品一区二区三区毛片 | 玩偶姐姐 在线观看 | 欧美视频一区二区三区在线观看 | 国产精品久久久久久久久久 |