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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scrapy從沒有標(biāo)題的表中提取行

Scrapy從沒有標(biāo)題的表中提取行

眼眸繁星 2021-06-02 21:04:11
所以我試圖從網(wǎng)站中提取表格。它是一個兩列表,如下所示:Name      FooNumber    Foo123Address   10          First Drive          London          AB34 5FGRegion    United Kingdom該表沒有標(biāo)題,“地址”行在第一列中包含第二、城市、郵政編碼等的空白單元格。我已經(jīng)設(shè)法拿到了桌子,很好。table = response.xpath('//table[@id="MemberDetails"]/tr/td//text()')這是輸出:[<Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'Name:\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nFoo\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'Number:\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nFoo123\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'Address:\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\n(10)\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nFirst Drive\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nLondon\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nAB34 5FG\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nUnited Kingdom\xa0\r\n'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'Region:\xa0'>, <Selector xpath='//table[@id="MemberDetails"]/tr/td//text()' data=u'\r\nUnited Kingdom\xa0\r\n'>]但是,我對如何將表解析為適當(dāng)?shù)慕Y(jié)構(gòu)感到困惑。第一個問題:不知道如何處理地址字段。第二個問題:這是一個兩列的表。保存時,我想轉(zhuǎn)置,“名稱、號碼、地址、地區(qū)”是列標(biāo)題。有 1000 個這樣的頁面包含類似的數(shù)據(jù)。
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊

讓我們使用您提供給我們的樣本。(使用此鏈接)


讓我們看看表格行是如何格式化的。


<tr>

<td bgcolor="#7EADAD">

<strong>Membership Name:&nbsp;</strong>

</td>

<td>

MESSRS R J &amp; L A ACTON&nbsp;

</td>

</tr>

這對我們來說很棒,我們有不同的標(biāo)題和值屬性:標(biāo)題strong在tds內(nèi)的標(biāo)簽內(nèi),而bgcolor值直接在它們的tds 內(nèi)。


讓我們看看地址信息的空行是怎樣的:


<tr>

<td bgcolor="#7EADAD">

<strong>&nbsp;</strong>

</td>

<td>

NORTHUMBERLAND&nbsp;

</td>

</tr>

很好,結(jié)構(gòu)一樣。


這意味著tr如果需要,我們可以遍歷所有s 并根據(jù)屬性獲取它們的數(shù)據(jù)。這是一個不處理鏈接的最小示例:


for tr in response.xpath('//table[@id="MemberDetails"]/tr'):

    header = tr.xpath('td/strong/text()').extract()[0].strip()

    value = tr.xpath('td')[1].xpath('text()').extract()[0].strip()

    print(u'{} -- {}'.format(header, value))

您下一步是收集數(shù)據(jù)(制作字典?單獨的列表?直接寫入文件?這是您的選擇。)。


為了處理地址:tr如果標(biāo)頭為空(假設(shè)只有地址標(biāo)頭為空),您可以在s循環(huán)中創(chuàng)建一個地址變量,該變量與該值連接。像這樣(再次<最小示例):


for tr in response.xpath('//table[@id="MemberDetails"]/tr'):

    address = ''

    header = tr.xpath('td/strong/text()').extract()[0].strip()

    value = tr.xpath('td')[1].xpath('text()').extract()[0].strip()

    if not header: # empty strings evaluate to False

        address += '' + value

您還必須弄清楚如何處理存儲在a標(biāo)簽中的標(biāo)頭/值。


查看完整回答
反對 回復(fù) 2021-06-15
  • 3 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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