今天在用Python爬取簡歷時段化,想把教育經(jīng)歷嘁捷,工作經(jīng)歷一起輸出來,即提取標(biāo)簽及其子標(biāo)簽下(多個標(biāo)簽下)的text內(nèi)容显熏。
XPath提取多個標(biāo)簽下的text內(nèi)容
網(wǎng)上搜到的基本都是這篇文章:
xpath一次提取多個標(biāo)簽下的內(nèi)容
用的xpath string(.)? 我試了一下雄嚣,還是報錯。不得已準(zhǔn)備用迭代的方式取出內(nèi)容。后來發(fā)現(xiàn)是selector.xpath('//xxxx')取出來的應(yīng)該是集合缓升,這個地方應(yīng)該是寫錯誤了鼓鲁,data要加上索引,即代碼應(yīng)該是:
info = data[0].xpath('string(.)').extract()[0]
果然港谊,修改后就得到了所有的文本內(nèi)容骇吭。
再往文章上面看,作者寫了一個tag:
tags: [xpath,Python,xml,scrapy]
是因?yàn)檫@僅僅是在scrapy下這樣寫的嗎歧寺?正好這兩天也在看scrapy燥狰,我就試著用scrapy抓取這段數(shù)據(jù)。
簡書上的文章信息
發(fā)現(xiàn)仍是一樣斜筐,xpath('xxx')取出的就是集合碾局,下一次操作時要么使用迭代,要么加上索引操作奴艾。
XPath提取數(shù)據(jù)塊(結(jié)構(gòu)性數(shù)據(jù))的技巧
選取點(diǎn)放在包含結(jié)構(gòu)性數(shù)據(jù)循環(huán)的地方,即取決大的地方内斯,再用xpath向內(nèi)取數(shù)據(jù)蕴潦。就是先抓大再抓小。
如爬取簡書上文章的信息俘闯,第一次selector要定在ul class="article-list thumbnails" 的li潭苞,<li></li>中包含的就是一篇文章的信息。(注意li 的樣式有兩種? have-img 即有縮略圖的)
文章列表html
articles = selector.xpath('//ul[@class="article-list thumbnails"]/li')forarticleinarticles:? ??
title = article.xpath('div/h4/a/text()').extract()? ? ? ??
url = article.xpath('div/h4/a/@href').extract()? ? ? ??
author = article.xpath('div/p/a/text()').extract()
鏈接:http://www.reibang.com/p/7041a7ba7fe0