如何在beautifulsoup上的多个列表中采取特定元素?

问题描述 投票:2回答:1

我很难提取一些特定的标签(及其字符串内容)并将它们存储到变量中(因此我可以在以后将这些变量放入CSV文件中)。

from bs4 import BeautifulSoup
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://www.khanacademy.org/profile/DFletcher1990/')
r.html.render(sleep=5)
soup=BeautifulSoup(r.html.html,'html.parser')

user_info_table=soup.find('table', class_='user-statistics-table')

for tr in user_info_table.find_all('tr'):
    tds=tr.find_all('td')
    print(tds)

我想收集:

  • "4 years ago"并将其存储到一个名为date的变量中,
  • "932,915"并将其存储到一个名为points的变量中,
  • "372"并将其存储到一个名为videos的变量中。

我真的不明白bs4.element.ResultSet的表现如何......

python-3.x web-scraping beautifulsoup html-parsing
1个回答
2
投票

你可以像对待一样对待它。

from bs4 import BeautifulSoup
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://www.khanacademy.org/profile/DFletcher1990/')
r.html.render(sleep=10)
soup=BeautifulSoup(r.html.html,'html.parser')
user_info_table=soup.find('table', class_='user-statistics-table')
dates,points,videos=[tr.find_all('td')[1].text for tr in user_info_table.find_all('tr')]
print(dates,points,videos,sep="\n")

产量

4 years ago
932,915
372
© www.soinside.com 2019 - 2024. All rights reserved.