【问题标题】:How to find all elements of the same type with python如何使用python查找相同类型的所有元素
【发布时间】:2021-07-16 14:05:28
【问题描述】:
import requests
from bs4 import BeautifulSoup
import csv

source = requests.get("https://www.11v11.com/teams/arsenal/tab/opposingTeams/opposition/Chelsea/")

soup = BeautifulSoup(source.text, 'lxml')
print(soup.prettify())
games = soup.find(class_="result-status")
print(games.text)

此特定代码仅找到一个结果状态元素。同时,我需要数百个。

根据网站的数据,我正在寻找的输出将类似于“L、W、L、D”。我导入了 CSV,因为最后我需要这种格式。

【问题讨论】:

  • 你试过了吗:soup.find_all(class_='result-status'),应该返回一个列表

标签: python csv web-scraping beautifulsoup python-requests


【解决方案1】:

当您使用.find() 时,它将返回 1(第一个)元素,其中包含 html 中的特定标签和属性,即使有 100 个。如 cmets 中所述,您希望将这些标签中的 find_all() 与特定类一起使用。然后你可以遍历这些来获得每个:

import requests
from bs4 import BeautifulSoup
import csv
source = requests.get("https://www.11v11.com/teams/arsenal/tab/opposingTeams/opposition/Chelsea/")

soup = BeautifulSoup(source.text, 'lxml')
print(soup.prettify())
games = soup.find_all(class_="result-status")
for game in games:
    print(game.text)

输出:

L
D
W
D
W
...
L
L
D
W
W

【讨论】:

    【解决方案2】:
    games = soup.find_all(class_="result-status")
    

    结果将在“result-status”类的元素列表中。
    您可以迭代并提取数据

    【讨论】:

    • 是的,输出在列表中,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多