bytes对象没有属性find_all [英] bytes object has no attribute find_all

查看:153
本文介绍了bytes对象没有属性find_all的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

过去3个小时,我一直在努力抓取这个网站并获得每个团队的排名,名称,胜利和失败.

I've been trying for the last 3 hours to scrape this website and get the rank, name, wins, and losses of each team.

实施此代码时:

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"))

我不断收到此错误

如果有人可以帮助我,将不胜感激!

If anyone can help me out then it would be much appreciated!

谢谢!

推荐答案

您在错误的变量上调用方法,使用BeautifulSoup对象 page 不是字节字符串 final :

You are calling the the method on the wrong variable, use the BeautifulSoup object page not the byte string final:

print(page.find_all("div"))

要获取表数据非常简单,所有数据都在具有css类的div内部"table.table--hcs" :

To get the table data is pretty straightforward, all the data is inside the div with the css classes "table.table--hcs":

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)

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

If we run the code, you can see the data matches the table:

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

这篇关于bytes对象没有属性find_all的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆