Web scraping 字节对象没有“全部查找”属性

Web scraping 字节对象没有“全部查找”属性,web-scraping,byte,python-requests,bs4,Web Scraping,Byte,Python Requests,Bs4,在过去的3个小时里,我一直在努力拼凑这些数据,并获得每支球队的排名、名字、胜负 执行此代码时: import requests from bs4 import BeautifulSoup halo = requests.get("https://www.halowaypoint.com/en-us/esports/standings") page = BeautifulSoup(halo.content, "html.parser") final = page.encode('utf-8'

在过去的3个小时里,我一直在努力拼凑这些数据,并获得每支球队的排名、名字、胜负

执行此代码时:

import requests
from bs4 import BeautifulSoup

halo = requests.get("https://www.halowaypoint.com/en-us/esports/standings")

page = BeautifulSoup(halo.content, "html.parser")

final = page.encode('utf-8')

print(final.find_all("div"))
我一直收到这个

如果有人能帮我的话,我将不胜感激


谢谢

如果在错误的变量上调用该方法,请使用BeautifulSoup对象页而不是字节字符串final:

要获取表数据非常简单,所有数据都在带有css类“table.table--hcs”的div中:

如果我们运行代码,您可以看到数据与表匹配:

In [4]: print(",".join([td.text for td in table.select("header div.td")]))
Rank,Team,Wins,Losses

In [5]: for row in table.select("div.tr"):
   ...:         rank,team = row.select_one("span.numeric--medium.hcs-trend-neutral").text,row.select_one("div.td.hcs-title").span.a.text
   ...:         wins, losses = [div.span.text for div in row.select("div.td.em-7")]
   ...:         print(rank,team, wins, losses)
   ...:     
1  Counter Logic Gaming 10 1
2  Team EnVyUs 8 3
3  Enigma6 8 3
4  Renegades 6 5
5  Team Allegiance 5 6
6  Evil Geniuses 4 7
7  OpTic Gaming 2 9
8  Team Liquid 1 10

在验证之前,让我测试一下这个答案!谢谢!不用担心,继续测试;)哇,老兄,真是太谢谢你了。当我说我在盯着屏幕想弄清楚发生了什么时,这不是一个玩笑!再次非常感谢!如果您能解释
迭代块
,那就更好了!没问题,我有一段时间不在公司了,但我会在以后回来的时候把它分解掉
halo = requests.get("https://www.halowaypoint.com/en-us/esports/standings")

page = BeautifulSoup(halo.content, "html.parser")


table = page.select_one("div.table.table--hcs")
print(",".join([td.text for td in table.select("header div.td")]))
for row in table.select("div.tr"):
    rank,team = row.select_one("span.numeric--medium.hcs-trend-neutral").text,row.select_one("div.td.hcs-title").span.a.text
    wins, losses = [div.span.text for div in row.select("div.td.em-7")]
    print(rank,team, wins, losses)
In [4]: print(",".join([td.text for td in table.select("header div.td")]))
Rank,Team,Wins,Losses

In [5]: for row in table.select("div.tr"):
   ...:         rank,team = row.select_one("span.numeric--medium.hcs-trend-neutral").text,row.select_one("div.td.hcs-title").span.a.text
   ...:         wins, losses = [div.span.text for div in row.select("div.td.em-7")]
   ...:         print(rank,team, wins, losses)
   ...:     
1  Counter Logic Gaming 10 1
2  Team EnVyUs 8 3
3  Enigma6 8 3
4  Renegades 6 5
5  Team Allegiance 5 6
6  Evil Geniuses 4 7
7  OpTic Gaming 2 9
8  Team Liquid 1 10