亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

lxml解析html時,檢驗XPath

2019-11-14 09:10:14
字體:
來源:轉載
供稿:網友

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

測試文本text.html

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>測試-常規方法</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 >極客學院</a> <a title="極客學院課程庫">點我打開課程庫</a> </div></div><div id="test-0">大家好!</div><div id="test-1">需要的內容1</div><div id="test-2">需要的內容2</div><div id="testfault">需要的內容3</div><div id="tiger"> 我左青龍, <span id="tiger2"> 右白虎, <ul> 上朱雀, <li>下玄武。</li> </ul> 老牛在當中, </span> 龍頭在胸口。</div><div id="test-3">美女, <font color=red>你的微信是多少?</font></div></body></html>

使用XPath對相關內容的提取

# -*- 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)

結果為: 這是第一條信息 這是第二條信息 這是第三條信息

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

結果為: http://jikexueyuan.com http://jikexueyuan.com/sourse/

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

結果為: 極客學院課程庫

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

結果為: 大家好! 需要的內容1 需要的內容2 需要的內容3 美女,

#標簽套標簽,取出所有的標簽data = selector.xpath('//div[@id="test-3"]')[0]info = data.xpath('string(.)')info=str(info)# info為<class 'lxml.etree._ElementUnicodeResult'>,轉為字符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'>,轉為字符content=" ".join(info.split())print (content)

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

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

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

參考如下網頁,非常感謝: 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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩视频在线观看| 亚州国产精品久久久| 久久影视三级福利片| 欧美综合国产精品久久丁香| 精品视频一区在线视频| 国产亚洲精品久久久| 亚洲国产精品va在线看黑人动漫| 日本欧美精品在线| 97免费中文视频在线观看| 热99精品只有里视频精品| 日韩av在线免费观看| 国产啪精品视频网站| 国产成人精品av在线| 亚洲欧美激情另类校园| 久久精品视频播放| 一二美女精品欧洲| 欧美日本高清一区| www国产91| 亚洲欧美综合精品久久成人| 俺也去精品视频在线观看| 992tv成人免费视频| 欧美精品午夜视频| 国产亚洲欧美日韩精品| 亲爱的老师9免费观看全集电视剧| 国内伊人久久久久久网站视频| 欧美大人香蕉在线| 亚洲free嫩bbb| 亚洲精品久久久久中文字幕欢迎你| 久久精品最新地址| 日本久久久久久| 日韩中文有码在线视频| 亚洲精品国产美女| 亚洲人成在线观| 国产国语刺激对白av不卡| 国产成人精品一区二区| 国内精品中文字幕| 欧美激情第三页| 久久精品国产一区二区三区| 日韩不卡中文字幕| 亚洲精品一区在线观看香蕉| 欧美日韩国产精品一区二区不卡中文| 国产精品久久久久久av下载红粉| 欧美精品久久久久久久久| 免费97视频在线精品国自产拍| 亚洲国产成人91精品| 欧美日韩一区二区在线播放| 久久精品国产欧美亚洲人人爽| 日韩在线免费观看视频| 久久激情五月丁香伊人| 91在线观看欧美日韩| 亚洲欧美在线一区| 日韩视频免费看| 亚洲第一黄色网| 亚洲精品美女在线观看| 日韩在线观看免费高清完整版| 亚洲欧美中文另类| 秋霞成人午夜鲁丝一区二区三区| 久久精品中文字幕| 国产精品视频导航| 亚洲第一精品电影| 精品女厕一区二区三区| 国内精品久久久久久久久| 成人在线视频网站| 国产精品久久久久久久久久久久| 亚洲日韩欧美视频一区| 中文字幕免费国产精品| 欧美日韩激情小视频| 伦伦影院午夜日韩欧美限制| 亚洲欧美国产日韩中文字幕| 亚洲欧美日韩精品| 国产精品久久久久av免费| 亚洲精品在线观看www| 国产精品第一区| 国产精品视频一区二区高潮| 国产激情综合五月久久| 韩剧1988在线观看免费完整版| 91精品国产自产91精品| 欧美日韩国产限制| 国产成人久久久精品一区| 日韩欧美aaa| 日韩中文字幕在线精品| 91免费观看网站| 日韩动漫免费观看电视剧高清| 久久影视免费观看| 日本精品久久中文字幕佐佐木| 在线成人激情黄色| 中文字幕日韩欧美| 91免费看片网站| 国产做受高潮69| 国产原创欧美精品| 日韩av免费看| 亚洲精品免费一区二区三区| 亚洲成人av在线| 久久视频免费在线播放| 91日本在线观看| 欧美高跟鞋交xxxxxhd| 亚洲成色777777女色窝| 国产丝袜视频一区| 国产成人精品优优av| 精品无人区乱码1区2区3区在线| 日韩av电影中文字幕| 亚洲男人av在线| 欧美在线激情视频| 国产精品久久久久久婷婷天堂| 亚洲免费成人av电影| 4438全国亚洲精品在线观看视频| 91av在线不卡| 久久精品99久久久久久久久| 91九色国产视频| 亚洲欧洲午夜一线一品| 日韩电影大片中文字幕| 91亚洲精品久久久久久久久久久久| 亚洲精品国产电影| 欧美一级大片视频| 97国产suv精品一区二区62| 国产精品精品久久久久久| 中文字幕亚洲激情| 日韩精品在线电影| 日本高清久久天堂| 欧美亚洲国产日韩2020| 日韩最新中文字幕电影免费看| 国产精品国语对白| 久久久久久久久久久久av| 日韩精品中文字幕视频在线| 欧美国产一区二区三区| 92国产精品久久久久首页| 欧美极品少妇全裸体| 国产成人一区二区三区小说| 久久久久久久久久久久久久久久久久av| 日日狠狠久久偷偷四色综合免费| 久久青草精品视频免费观看| 韩日欧美一区二区| 亚洲欧洲第一视频| 国产激情综合五月久久| 中文字幕亚洲激情| 久久国产精品首页| 欧美激情精品久久久久久黑人| 欧美午夜精品久久久久久浪潮| 欧美性猛交xxx| 91九色视频在线| 国产在线拍揄自揄视频不卡99| 欧美在线中文字幕| 日韩av影院在线观看| 日韩大片在线观看视频| 久久伊人精品一区二区三区| 国产精品午夜一区二区欲梦| 国产精品一区二区av影院萌芽| 成人午夜一级二级三级| 欧美日韩美女视频| 亚洲人成网7777777国产| 精品欧美一区二区三区| 久久久国产精品亚洲一区| 中文字幕av一区二区| 在线观看日韩专区| 国产午夜精品视频| 色99之美女主播在线视频| 国产成人亚洲综合青青| 亚洲精品国产免费| 国产精品自产拍在线观看| 亚洲欧美中文字幕| 91久久精品美女高潮| 欧美在线视频在线播放完整版免费观看| 国产做受69高潮| 国产精品丝袜高跟|