html 尝试从网页获取元素时始终返回“None”

vbkedwbf  于 2023-10-14  发布在  其他
关注(0)|答案(2)|浏览(141)

我试图从这个页面上的“整体比赛统计”中获得胜利:https://www.fctables.com/teams/sunderland-194998/?template_id=11。我尝试的所有操作都返回“无”。这不是我尝试使用的唯一页面,但每个页面似乎都返回“无”。我在这方面不是很先进,所以任何帮助都将不胜感激。

  1. from bs4 import BeautifulSoup
  2. import requests
  3. URL = "https://www.fctables.com/teams/sunderland-194998/"
  4. response = requests.get(URL)
  5. soup = BeautifulSoup(response.text, "html.parser")
  6. wins = soup.find('div', class_='text-success ')
  7. print(wins)

我需要它来输出'6'这是胜利的数量。最好是整数。

5gfr0r5j

5gfr0r5j1#

您可以更改选择标记的方式:

  1. import requests
  2. from bs4 import BeautifulSoup
  3. URL = "https://www.fctables.com/teams/sunderland-194998/?template_id=11"
  4. response = requests.get(URL)
  5. soup = BeautifulSoup(response.text, "html.parser")
  6. stats = {}
  7. for li in soup.select("h3:-soup-contains('Overall matches stats') + div li"):
  8. stats[li.p.text] = li.div.text
  9. print(stats["Wins"])

图纸:

  1. 6

stats是一个字典,包含:

  1. {
  2. "Matches": "11",
  3. "Goals": "20",
  4. "per game": "1.82",
  5. "Wins": "6",
  6. "Draws": "1",
  7. "Losses": "4",
  8. "Over 2.5": "72.7%",
  9. "Over 1.5": "81.8%",
  10. "CS": "36.36%",
  11. "BTTS": "45.45%",
  12. }
展开查看全部
dxxyhpgq

dxxyhpgq2#

BeautifulSoup是一个著名的包,它允许您解析其他人的HTML垃圾,就好像它是语法正确的一样。HTML的语法有点复杂。
你被类名中的结尾空格卡住了。把它剥掉。

  1. >>> from pprint import pp
  2. >>>
  3. >>> pp(soup.find_all('div', class_='text-success '))
  4. []
  5. >>> pp(soup.find_all('div', class_='text-success'))
  6. [<div class="text-success">11</div>,
  7. <div class="text-success">1.83</div>,
  8. <div class="text-success">4</div>,
  9. <div class="text-success">4/6</div>,
  10. <div class="text-success">5/6</div>,
  11. <div class="text-success">2/6</div>,
  12. <div class="text-success">2/6</div>,
  13. <div class="text-success">41</div>,
  14. <div class="text-success">2.16</div>,
  15. <div class="text-success">11</div>,
  16. <div class="text-success">78.9%</div>,
  17. <div class="text-success">89.5%</div>,
  18. <div class="text-success">21.05%</div>,
  19. <div class="text-success">68.42%</div>]

Steve Harvey想知道,“SPACE能成为有效类名的一部分吗?“调查说“不!“,则特别禁止使用空格字符。

展开查看全部

相关问题