楼主: 我是小趴菜
270 0

[数据挖掘论文] BeautifulSoup用于刮取表数据并存储为将来计算的值 [推广有奖]

  • 0关注
  • 4粉丝

教授

35%

还不是VIP/贵宾

-

威望
0
论坛币
29650 个
通用积分
380.5350
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
7150 点
帖子
670
精华
0
在线时间
37 小时
注册时间
2022-8-30
最后登录
2023-4-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

我正在取得一些进展,但在尝试为每个团队提取行数据并将其存储以供将来计算时,我陷入困境。到目前为止,这是我的代码:


from urllib.request import urlopen

import pandas as pd

from bs4 import BeautifulSoup


url = "https://www.hockey-reference.com/leagues/NHL_2019.html"

html = urlopen(url)

soup = BeautifulSoup(html, "lxml")



all_stats = soup.find('div', {'id': 'all_stats'})

print(all_stats)

使用此代码,我能够以HTML格式查看我需要的行信息,但任何拉动该数据的尝试都会导致找不到。我想我必须为每个团队和td值分配一个变量,以便将来可以调用它。我需要收集30行数据。

解决办法:原因是Team Statisticstable在Comment行中,所以你不解析它。在这种情况下,您可以使用Commentfrom bs4:


from bs4 import BeautifulSoup , Comment

from urllib import urlopen



search_url = 'https://www.hockey-reference.com/leagues/NHL_2019.html#'


page = urlopen(search_url)

soup = BeautifulSoup(page, "html.parser")


table = soup.findAll('table') ## html part with no comment

table_with_comment = soup.findAll(text=lambda text:isinstance(text, Comment))

[comment.extract() for comment in table_with_comment]

## print table_with_comment print all comment line


for c in table_with_comment:

a = BeautifulSoup(c, "html.parser")

teams = a.findAll('td', attrs={'class':'left'}) # Team

values = a.findAll('td', attrs={'class':'right'}) #stats


for getvalues in values:


print getvalues.text

for gettextinElement in teams:

print gettextinElement.text




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:beautiful soup eau Aut UTI

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 00:46