BS4 webscraping到CSV文件,以为我也在抓行('tr')

时间:2019-08-25 23:55:40

标签: python web-scraping html-table beautifulsoup export-to-csv

我的网络抓取代码捕获的数据行超出了我的需要。我想为每个玩家抓取行,这些“ tr”都包括:-

<tr class="diff-row evTabRow bc"  

我想抓取的TD数据也是:-
     data-odig =
从表数据列表的下面:-

<td class="bc bs o" data-bk="B3" data-odig="9" data-o="8" data-hcap="" data-fodds="9.0" data-ew-denom="4" data-ew-places="5" xpath="1"><p>9</p></td>

代码正在提取
     data-o =
td对我来说是有问题的,有时表示为分数。

任何建议表示赞赏

我是编码的新手,python是我的第一次尝试。 我的代码主要是根据我从youtube获得的内容编写的,并复制了其他内容以满足我的需求。我试图进行编辑以具体说明要包含的表行和数据的类型,但无法找到有效的答案(许多语法错误)。我怀疑我有一两条线也什么也没做。

url = 'https://www.oddschecker.com/golf/the-masters/2020-us-masters/winner'

r = requests.get(url,headers = header)
soup = BeautifulSoup(r.text,'lxml')
table = soup.findAll("table")[1]

rows_list = []

for rows in table.findAll('tr'):
    cell_list = []
    for cell in rows.findAll('td'):
        text=cell.text
        cell_list.append(text)
    rows_list.append(cell_list)

1 个答案:

答案 0 :(得分:1)

find()findAll()/find_all()可以获取其他参数来过滤结果

findAll('tr', {'class': 'diff-row evTabRow bc'})

findAll('tr', class_='diff-row evTabRow bc')

如果属性必须存在,但可以具有不同的值,则可以使用True

findAll('td', {'data-o': True})

有关BeautifulSoup的文档,请参见