鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Python  網(wǎng)絡(luò)安全/ 怎么爬CN-ABS網(wǎng)站上的表格數(shù)據(jù)

怎么爬CN-ABS網(wǎng)站上的表格數(shù)據(jù)

1.爬CN-ABS https://www.cn-abs.com/Deal/D... ,這個(gè)表格數(shù)據(jù)不知道怎么弄下來,這個(gè)表格數(shù)據(jù)是由div嵌套的,不是trtd那種

clipboard.png

2.我的代碼

import requests
from bs4 import BeautifulSoup
import pprint
import csv
from urllib.request import urlopen
# wb_data = requests.get('https://www.cn-abs.com/Deal/DealInformation.aspx?dealid=3325')
html = urlopen("https://www.cn-abs.com/Deal/DealInformation.aspx?dealid=3325")
soup = BeautifulSoup(html, 'lxml')
rows = soup.select('.abs-col-8')

csvFile = open("editors.csv", 'wt', newline='', encoding='utf-8')
writer = csv.writer(csvFile)

for row in rows:
    csvRow = []
    # for cell in row.select('span.abs-col-4.abs-label.abs-col-paddingx-10'):
    #     pprint.pprint(cell.text)
        # csvRow.append(cell.get_text())
    for cell in row.select('span.abs-col-8 abs-col-paddingx-10'):
        print(cell.text)
    writer.writerow(csvRow)

3.現(xiàn)在可以解決的是綠色字體如產(chǎn)品名稱什么的能弄下來,但是白色黃色字體什么的弄不下來,

clipboard.png

clipboard.png

白色字體相對(duì)黃色有個(gè)加粗,我想做的就是把span a 標(biāo)簽里面的文本都讀出來,但不知道怎么讀 本來想id 發(fā)現(xiàn)他們的ID不一樣,現(xiàn)在卡在select('span.abs-col-8 abs-col-paddingx-10')這,我也嘗試過用select('a')select('span')但是有問題,span 雖然能把所有數(shù)據(jù)讀出來,但是帶有span標(biāo)簽的會(huì)重復(fù)兩次,無語

4.求大神給點(diǎn)建議,可以的話附上代碼,好想把這個(gè)表格數(shù)據(jù)扣下來。。。

回答
編輯回答
爆扎

可以使用xpath 獲取每一個(gè)DIV下的兩個(gè)span 然后再對(duì)span進(jìn)行文本獲取
文本測(cè)試如下

<span>
    <span>test</span>
    <span>.pdf</span>
</span>
from lxml import etree
html = etree.parse('hello.html')
result = html.xpath('//span/span/text()')
print(result)
運(yùn)行結(jié)果['test', '.pdf']
2018年5月16日 15:47
編輯回答
瘋浪

如果綠色的字體不變的,建議把圖片里的HTML代碼去掉html所有標(biāo)簽,只留下文字text;
使用正則或者自己一點(diǎn)一點(diǎn)截取都可以;數(shù)據(jù)都有了,不一定用css選擇器去拿吧

2018年8月22日 22:33