第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何多行文本內容最終只爬取到最后一行內容

老師,麻煩您看一下爬取introduce信息時,xpath寫為

“.//div[@class='info']//div[@class='bd']/p[1]/text()”

然后賦值時

content_s?=?"".join(i_content.split())

您這邊在pycharm終端中輸出第一頁時確實有多行內容分行提取到了,但是最后top250全部爬取時introduce只有最后一行的內容。

我完全按您的代碼運行,爬取第一頁時introduce就只有最后一行內容,top250全部爬取時也只有最后一行的內容。

于是我把xpath改成“.//div[@class='info']//div[@class='bd']/p[1]”,去掉了text()

然后content_s?=?"".join(i_content.split('<br>'))

但是這樣一來雖然把多行內容都爬取到了,但是文本中又多出來空格和標簽的信息,麻煩老師給個好一點的解決

辦法。

正在回答

2 回答

老師的多行處理是錯的,

content?=?i_item.xpath(".//div[@class='info']/div[@class='bd']/p[1]//text()").extract()

這個解析出來是一個兩個元素的列表,兩個元素分別是<br>的前后兩段,因此下面這段代碼:

for?i_content?in?content:
????content_s?=?"".join(i_content.split())
????douban_item['introduce']?=?content_s

代碼的含義是,分別取出<br>的前后兩段,然后去掉空格換行符等,然后存進數(shù)據(jù)庫的introduce字段。這樣的話第二段的數(shù)據(jù)就會覆蓋第一段先存進去的數(shù)據(jù),因此你看到了“多行文本內容最終只爬取到最后一行內容”這個結果。

可以改成這樣:

content_s?=?""
for?i_content?in?content:
????content_s?=?content_s?+?"".join(i_content.split())
douban_item['introduce']?=?content_s


2 回復 有任何疑惑可以回復我~

這樣會有省略號怎么辦

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為何多行文本內容最終只爬取到最后一行內容

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號