我不明白为什么它不起作用。
现在我正在处理财务表:
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)
我会和pandas一起得到一个格式很好的表,然后切出你想要的东西
import pandas as pd
tables = pd.read_html('https://finance.yahoo.com/quote/ATVI/financials?p=ATVI')
print(tables[0].fillna(''))
既然你找到all
td
元素(创建一个列表),你需要循环遍历每个元素,然后找到每个td
元素的子元素:
for td in soup.find_all('td'):
for child in td.children:
print(child.get_text())
find_all()
返回一个列表,所以你需要循环它。然后你可以在元素上使用children
,并在它们上面调用get_text()
。
for td in soup.find_all('td'):
for child in td.children:
print(child.get_text())
请注意,get_text()
也是一种方法,你需要括号。
循环遍历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)