关于数据类型的BeautifulSoup代码问题

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

我不明白为什么它不起作用。

现在我正在处理财务表:

https://finance.yahoo.com/quote/ATVI/financials?p=ATVI

我没有得到的是find_all方法的结果。当我在find_all('td').children上添加更多点符号时它会抛出一个错误。也许我的错误是因为find_all的返回值是一个对象,而不是一个列表对吗?

我不知道为什么下面的代码不起作用。

span_tag1=soup.find_all('td')
for i in span_tag1.children:
    print(i.get_text)
python web-scraping beautifulsoup
4个回答
2
投票

我会和pandas一起得到一个格式很好的表,然后切出你想要的东西

import pandas as pd

tables = pd.read_html('https://finance.yahoo.com/quote/ATVI/financials?p=ATVI')
print(tables[0].fillna(''))

3
投票

既然你找到all td元素(创建一个列表),你需要循环遍历每个元素,然后找到每个td元素的子元素:

for td in soup.find_all('td'):
    for child in td.children:
        print(child.get_text())

0
投票

find_all()返回一个列表,所以你需要循环它。然后你可以在元素上使用children,并在它们上面调用get_text()

for td in soup.find_all('td'):
    for child in td.children:
        print(child.get_text())

请注意,get_text()也是一种方法,你需要括号。


0
投票

循环遍历qazxsw poi列表以获取其中的每个元素:

span_tag1

OUTPUT:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://finance.yahoo.com/quote/ATVI/financials?p=ATVI")
soup = BeautifulSoup(page.content, 'html.parser')

td = soup.find_all('td')

for et in td:
   for elem in et:
      print(elem.text)
© www.soinside.com 2019 - 2024. All rights reserved.