BS4刮取隐藏内容

2024-10-06 11:30:08 发布

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

我在这件事上纠结了一段时间。。。我正试图从这个网站上删除玩家的名字和投影:https://www.fantasysportsco.com/Projections/Sport/MLB/Site/DraftKings/PID/793

脚本将通过遍历一个范围内的所有PID来循环过去,但这不是问题所在。主要问题是当我检查元素时,我发现值存储在这个类中:

<div class="salarybox expanded"...

它位于我的项目视图列表的第5位。在

scraper可以很好地找到projectionsView类,但在其中找不到任何内容。在

当我去查看网站的实际HTML时,似乎这个内容并不存在于其中。。在

^{pr2}$

我是超级新的刮,并已成功刮除我的项目所需的一切,只是不是这个该死的网站。。。我想可能是因为我必须注册这个网站?但是不管是哪种方式,信息都可以在不登录的情况下查看,所以我认为我不需要使用Selenium,即使我这样做也不会找到它。在

不管怎样,这是我到目前为止得到的代码,它显然返回了一个空白列表。在

from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
import pandas as pd 
import os


url = "https://www.fantasysportsco.com/Projections/Sport/MLB/Site/DraftKings/PID/793"

uClient = uReq(url)
page_read = uClient.read()
uClient.close()

page_soup = soup(page_read, "html.parser")
salarybox = page_soup.findAll("div",{"class":"projectionsView"})
print(salarybox[4].findAll("div",{"class":"salarybox expanded"}))

任何想法都将不胜感激!在

这个脚本的全部思想就是在每个页面上找到每个“salarybox expanded”类的ppText。我只想知道如何找到这些元素。也许是另一个解析器?在


Tags: httpsimportdivread网站aswwwpage
1条回答
网友
1楼 · 发布于 2024-10-06 11:30:08

根据您的url页面,<div id="salData" class="projectionsView">由javascript重写,但是{}将在运行回调之前获得整个响应,这意味着javascript生成的内容将不在响应中。因此,div将为空:

<div id="salData" class="projectionsView">
    <!  Fill in with Salary Data  >
</div>

您最好尝试使用selenium和{a2}将适用于这种动态网站。在

顺便说一句,在你得到正确的回答后,你选择div,按id,它将更具体:

^{pr2}$

相关问题 更多 >