解決:xpath取出指定多標簽內(nèi)所有文字text

Python 2.7
Pycharm 5.0.3


問題

再寫一個markdown自動引用的小腳本的時候新出現(xiàn)的問題懂缕,也就是利用xpath取出字符串的問題漱逸,記錄一下


取出如下字符串

這里寫圖片描述

我要取出mrlevo520的內(nèi)容正勒,怎么取呢,很多方法票编,bs4也可以,正則也可以妄迁,動態(tài)selenium也可以,這次我想嘗試用xpath來做李命,一則是為了和selenium接軌登淘,xpath的確很強大,二來是firefox提供firebug插件封字,可以直接定位你需要內(nèi)容的標簽黔州,一步到位簡直完美,不多說阔籽,上程序流妻。

import urllib2
from lxml import etree
crawl_url = "http://www.reibang.com/p/e2c4ebd2eeb3"
req = urllib2.Request(crawl_url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')
response = urllib2.urlopen(req)
html = response.read()
selector = etree.HTML(html)
# 核心部分
bloger = selector.xpath("http://a[@class='author-name blue-link']")
info = bloger[0].xpath('string(.)').encode('utf-8').strip()


print info #打印出mrlevo

網(wǎng)上的方法

這里寫圖片描述

ok,我們來試下笆制,用小哥改進的方法取出上面那個標簽

# 修改-核心部分绅这,其余保持一樣
bloger = selector.xpath("http://a[@class='author-name blue-link']")
print bloger[0].xpath('string(.)').extract()[0]

ok,又報錯

AttributeError: '_ElementStringResult' object has no attribute 'extract'

查看類型在辆,如小哥所說证薇,的確是list,再查看列表

print type(bloger) # list
print type(bloger[0]) #'lxml.etree._Element'
print (bloger[0]) # <Element a at 0x36e9208>
# ok匆篓,這要取出bloger[0]里面的字符串就可以了

再次修改代碼浑度,去掉extract(),并去掉周圍空格

# 核心部分
bloger = selector.xpath("http://a[@class='author-name blue-link']")
print bloger[0].xpath('string(.)').strip()
# ok奕删,取值成功

對于小哥的例子俺泣,取出來之后字符串片段使用連接字符串(join)就可以了(可能都不需要join,我沒試過)


總結(jié)

查閱多很博客完残,大家抄的抄伏钠,也不去做驗證,我相信簡書小哥是驗證過的谨设,其余的熟掂,,扎拣,額赴肚,但是簡書小哥@向右奔跑貌似對我的例子并不成立,我也母雞了二蓝,還是自己調(diào)試誉券,所以,希望我們能幫到你刊愚,這些方法你都可以試試踊跟。


BTW

如果對于單標簽定位足夠精確了,那么取出文本還可以用text的方法我們來看一下鸥诽;

這里寫圖片描述

采用text的方法

import urllib2
from lxml import etree
crawl_url = "http://blog.chinaunix.net/uid-28266791-id-5754271.html"
req = urllib2.Request(crawl_url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')
response = urllib2.urlopen(req)
html = response.read()
selector = etree.HTML(html)
# 核心部分
bloger = selector.xpath("http://div[@class='Blog_left']/div/div/p/a")[0].text.encode('utf-8').strip()

print bloger #打印出夏寥寥

我們一般認為text的方法能夠取出一個標簽下的所有文本商玫,其實不然箕憾,即使那個文本在其標簽下(次級標簽)想要定位范圍稍微放寬,text的方法就不再適用拳昌,也就是說袭异,我想要取出一個一級標簽下的所有內(nèi)容,如果有二級標簽炬藤,三級標簽御铃,那么想要一下子把所有內(nèi)容都取出來,只能靠string(.)的方法了

致謝

@青南--xpath提取多個標簽下的text
@向右奔跑--XPath提取多個標簽下的text

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刻像,一起剝皮案震驚了整個濱河市畅买,隨后出現(xiàn)的幾起案子并闲,更是在濱河造成了極大的恐慌细睡,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帝火,死亡現(xiàn)場離奇詭異溜徙,居然都是意外死亡,警方通過查閱死者的電腦和手機犀填,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門蠢壹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人九巡,你說我怎么就攤上這事图贸。” “怎么了冕广?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵疏日,是天一觀的道長。 經(jīng)常有香客問我撒汉,道長沟优,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任睬辐,我火速辦了婚禮挠阁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘溯饵。我一直安慰自己侵俗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布丰刊。 她就那樣靜靜地躺著隘谣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藻三。 梳的紋絲不亂的頭發(fā)上洪橘,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天跪者,我揣著相機與錄音,去河邊找鬼熄求。 笑死渣玲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弟晚。 我是一名探鬼主播忘衍,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卿城!你這毒婦竟也來了枚钓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤瑟押,失蹤者是張志新(化名)和其女友劉穎搀捷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體多望,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡嫩舟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了怀偷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片家厌。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖椎工,靈堂內(nèi)的尸體忽然破棺而出饭于,到底是詐尸還是另有隱情,我是刑警寧澤维蒙,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布掰吕,位于F島的核電站,受9級特大地震影響木西,放射性物質(zhì)發(fā)生泄漏畴栖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一八千、第九天 我趴在偏房一處隱蔽的房頂上張望吗讶。 院中可真熱鬧,春花似錦恋捆、人聲如沸照皆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膜毁。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘟滨,已是汗流浹背候醒。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杂瘸,地道東北人倒淫。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像败玉,于是被迫代替她去往敵國和親敌土。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 20170531 這幾天重新拾起了爬蟲运翼,算起來有將近5個月不碰python爬蟲了返干。 對照著網(wǎng)上的程序和自己以前寫的...
    八神蒼月閱讀 14,160評論 3 44
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法血淌,內(nèi)部類的語法矩欠,繼承相關(guān)的語法,異常的語法六剥,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • 我的100天目標 1.簡書更新3萬晚顷,日更300多字 2.每月運動80公里 3.每天22:00之前睡覺 今日讀書和聽...
    lijutong_010閱讀 156評論 0 1
  • 那日我走著 在這條街上 今天的衣服真好看 哎呀我給你講 這樣的人就不能給他好臉色 哈哈哈哈哈 不行我工作太忙了 麻...
    Sunny亦西閱讀 131評論 0 0
  • 生命周期:任何企業(yè)都有自己的生命周期.創(chuàng)業(yè)、成熟疗疟、轉(zhuǎn)型。話說DDM 2014.03.19那天起瞳氓,我們公司又重新走上...
    小笨魚王月閱讀 179評論 0 0