BeautifulGroup找不到网页上存在的类?

2024-04-26 13:33:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着刮下下面的网页https://www.scoreboard.com/uk/football/england/premier-league/

特别是计划和完成的结果。因此,我试图寻找带有class = "stage-finished" or "stage-scheduled"的元素。然而,当我刮取网页并打印出页面汤包含的内容时,它并不包含这些元素。在

我发现了另一个问题,答案是,这是因为它是通过AJAX加载的,我需要查看chrome dev工具上network选项卡下的XHR来找到加载必要数据的文件,但是它似乎不在那里?在

import bs4
import requests
from bs4 import BeautifulSoup as soup
import csv
import datetime

myurl = "https://www.scoreboard.com/uk/football/england/premier-league/"
headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
page = requests.get(myurl, headers=headers)

page_soup = soup(page.content, "html.parser")

scheduled = page_soup.select(".stage-scheduled")
finished = page_soup.select(".stage-finished")
live = page_soup.select(".stage-live")
print(page_soup)
print(scheduled[0])

上面的代码当然会抛出一个错误,因为调度数组中没有内容。在

我的问题是,如何获取我要查找的数据?在

我把XHR文件的内容复制到记事本上,搜索stage finished和其他标记,但什么也没找到。我是不是少了点什么?在


Tags: httpsimportcom网页内容wwwpageselect
1条回答
网友
1楼 · 发布于 2024-04-26 13:33:40

页面是用JavaScript呈现的。你需要硒。下面是一些代码:

from selenium import webdriver

url = 'https://www.scoreboard.com/uk/football/england/premier-league/'

driver = webdriver.Chrome()
driver.get(url)
stages = driver.find_elements_by_class_name('stage-scheduled')
driver.close()

或者您可以将driver.content传入BeautifulSoup方法。像这样:

^{pr2}$

注: 你需要先安装一个webdriver。我安装了chromedriver。在

祝你好运!在

相关问题 更多 >