首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bs4不上课吗?

bs4不上课吗?
EN

Stack Overflow用户
提问于 2020-07-28 18:43:34
回答 4查看 57关注 0票数 0

(我对python非常陌生)

我正在努力从英雄联盟的名单中提取所有的冠军。但是它似乎找不到我正在寻找的类(rt-tr-group)。

这是代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import re
from requests import get

#   requests

url = 'https://u.gg/lol/tier-list'
response = get(url)
#print(response.text[:500])

#   bs4

html_soup = BeautifulSoup(response.text, 'html.parser')
type(html_soup)

movie_containers = html_soup.find_all('div', class_ = r"rt-tr-group")
print(type(movie_containers))
print(movie_containers)
print(len(movie_containers))

这输出

代码语言:javascript
复制
<class 'bs4.element.ResultSet'>
[]
0

当它应该输出:

代码语言:javascript
复制
<class 'bs4.element.ResultSet'>
[*all the cases with class_=rt-tr-group*]
30

为什么它输出一个空数组?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-07-28 19:44:16

试试这个:

代码语言:javascript
复制
from selenium import webdriver
driver = webdriver.Firefox(executable_path='c:/program/geckodriver.exe')

url = 'https://u.gg/lol/tier-list'
driver.get(url)
driver.implicitly_wait(10)


movie_containers = driver.find_elements_by_css_selector('div.rt-tr-group')
print(type(movie_containers))
print(movie_containers)
print(len(movie_containers))
driver.close()

指纹:

代码语言:javascript
复制
<class 'list'>
[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="01fbfcb3-bcda-4b80-ab16-b9c4c7064a44")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="f6b105e7-4115-4858-bf9a-8b49d545836b")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="3df5237c-be61-4ad6-83f4-90fe61ce321b")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="9e7dd15b-30af-4c35-b7be-211008307d57")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="7e520eb4-b9fc-47f4-bbeb-18a093fc4014")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="2ac35d20-a02d-4b57-a69d-df94c7960a72")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="03019e3d-3a8b-4c97-a924-499b6fcfe2a8")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="0cc7652c-cb7a-45c7-8f75-131d2dd1b297")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="07c070ad-766f-4c06-af86-99af454cdb60")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="a1773fd7-1f6f-4e13-b8db-a9ebc377585c")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="660bc4d4-2861-4245-8d6b-f7c98b4ec79d")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="4416ca86-87ad-40a0-a013-9622849bdf00")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="36df65b0-8251-4568-b1d8-ae038ba8cc33")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="5396a9bc-86e8-42a8-b9ab-27f3ed3d2af2")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="f7c874af-1494-4230-abfb-52cc437caeb7")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="bee789cb-d02e-4501-aa7c-978abd1118cd")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="df777a62-0ca3-40e9-bcd0-91730cbd3d7a")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="0ec5a92b-3c84-4ca9-a80c-965303f63fee")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="4f2ebf56-4c5a-45d6-96ca-a2c7cbd7f977")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="a664b073-09cf-467d-a891-23dbf852f023")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="915fee4c-f94a-4aa4-98af-798a650fbfb9")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="23e3e2e5-9c60-46f9-b479-8da1d70d999a")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="2a71b65c-131a-4f24-959b-99f391492707")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="4968e326-dc94-401b-bd2a-7b1b1bf279a8")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="c23d9860-d810-49b1-a07b-db0f1a2f0f3f")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="b0729826-fd0a-4316-923b-d64a9d576b46")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="71c74203-adcc-450a-a35d-667746c195f6")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="01305329-31d2-4885-a003-9e4c9a0b7fa7")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="108e2c8a-23a2-4904-a597-9cebb28766c1")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="e9cb0ff8-be4b-44fc-9174-2e419ee98b7d", element="d9088584-5b35-4743-a191-1841df806977")>]
30

注意,yo需要壁虎司机,在此代码中,geckodriver被设置为从c:/program/geckodriver.exe导入。

票数 0
EN

Stack Overflow用户

发布于 2020-07-28 19:17:38

requests.get(url)发送HTTP请求。结果大概是通过右键点击一个网站并选择“显示页面源”得到的。

但是,当浏览器的你的目标网站引擎解释HTTP的HTML结果时,它会通过Javascript动态地生成其内容。因此,您正在寻找的信息不包含在response.text和美丽汤因此找不到它在那里。

您可以使用像这样的web浏览器自动化工具,它具有很好的Python绑定和很好的指南

票数 0
EN

Stack Overflow用户

发布于 2020-07-28 19:22:59

这个网站是动态加载的。当查看所有请求时,您应该找到使用网络监视器(例如,在火狐中按CTRL+SHIFT+E来监视所有请求)所想要的内容。

使用这种工具,您可以直接使用这个API:美国/冠军.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63140821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档