如何用scrapy提取不在標籤內的文字?

時間 2021-05-14 10:34:57

1樓:一二三四五

你好,請問你的問題解決了嗎?最後怎麼做到的?因為我用scrapy也遇到了類似的問題,如果提取text()在csv表中就會有半形逗號,如果全部提取子標籤就會把裡面的內容也取出來。

要怎麼做能夠只提取標籤外的內容呢?

2樓:zhangxiaoyang

推薦用正則,結果如圖。

()如果用xpath,chrome裡有個小技巧。

3樓:足兆叉蟲

response.xpath(u'//span[./text()="出版社:"]/following::text()[1]')

如果text() 中有空格, 感謝 @董成良 提醒, 你可能還需要這麼寫

response.xpath(u'//span[contains(./text(), "出版社:")]/following::text()[1]')

或者全匹配:

response.xpath(u'//span[.//text()[normalize-space(.)="出版社:"]]/following::text()[1]')

這就是我不喜歡xpath的原因,在pyquery中, 你只需要

response.doc(u'span:contains("出版社:")')[0].tail

4樓:卡道斯

defparse

(self

,response

):states={}

list1=

list2=

forrow

inresponse

.xpath

("//*[@id='info']/*"

):if

row.

xpath

("span[@class='pl']/text()"

):title

=row

.xpath

("span[@class='pl']/text()").

extract

()[0].

strip

()text

=row

.xpath

("a/text()").

extract

()[0].

strip

()states

[title]=

text

elif

row.

xpath

("text()"

):list1.(

row.

xpath

("text()").

extract

()[0].

strip

()[:-1

])for

rowin

response

.xpath

("//*[@id='info']/text()").

extract

():if

row.

strip

():list2.(

row.

strip

())foriin

range

(len

(list1

)):states

[list1[i

]]=list2[i

]fornin

states

:printn,

states[n

]不建議用正則,scrapy能不用正則盡量不用,這樣提取就行,到上一層DIV用TEXT()即可取出所有文字,我寫了個大概的,試了下可以跑,字典key是類名,value是內容。

方法有點蠢,URL形式的類名和文字一次取的,然後標籤外的是分開取的,放到兩個列表裡,再統一塞到字典裡。

5樓:

還有就是通過response.xpath.(' //*[@id="info"]/text() ').extract() 可以把

text

這個區域的文字全部找出來。你所需要的資訊都在裡面,你試試看

6樓:堂吉訶德

用beautifulsoup庫,獲取書本HTML區域的div的soup。

用.text提取div的所有文字資訊

用.split('/r')或者是/n,兩者選一,來分割文字儲存成list陣列序列。這時候書本各行資訊基本都劃分成元素在list了。

想獲取其中任意,可以這樣,以提取年份為例

for each in list

if '出版年' in each

那麼就提取。

我用這種方式做了爬蟲,遞迴地爬豆瓣使用者讀過的書本資訊,自動生成markdown格式的書本資訊檔案,平時書荒就在爬蟲裡找書看,效果不錯。

Scrapy中xpath如何提取細節標籤

墨墨 我現在目前的情況跟你一樣,剛開學的時候基本都有跟她們交談過,可是現在她們都成雙成對了,大夥湊在一起都聊的來,我也是感覺我是多餘的,我也是大一,疫情期間我也快大二了,我是讀大專的,專業也不是說特別喜歡,加上宿舍又這樣,我也感受不到我來這所學校還有什麼意義,純心找添自己心裡堵,我也想過不想讀了,這...

如何用簡單的工具提取植物化合物

accn 提取很簡單,乙個鍋煮一下就能出來。至於各種儀器和試劑,只是提取效率的問題。實驗室用的,肯定效率高,但是普通飯鍋也能煮出來。包括有文獻用咖啡機提取植物中的物質。植物蛋白的提取,看你是否需要保持活性。如果是大豆蛋白,加熱水煮,再用高濃度酒精沉澱,再離心,就能獲得粗蛋白。加熱會破壞蛋白,也可以像...

如何用深度學習來給自己的影象標籤,做成自己的資料集來訓練?

智星雲服務 其實要回答這個問題,首先要有個前提條件,那就是用什麼方法來訓練,不同的方法對應的資料集的格式也不同,目前主流影象資料集格式有兩類 coco格式 voc格式。如果是自己手動標註可以利用labimg軟體來實現,設定相應格式就可以得出相應的標註影象和標註檔案。還有其它工具 至於用深度學習來給自...