为了账号安全,请及时绑定邮箱和手机立即绑定

无法在页面上找到 div 类

无法在页面上找到 div 类

眼眸繁星 2023-10-26 16:44:06
我无法在以下代码中找到 div 类。网址如下:https://www.oddsportal.com/basketball/usa/nba/los-angeles-lakers-miami-heat-IqLamQfL/#over-under;1我的代码如下:html_doc = urllib.request.urlopen(new_url).read()odds_soup = BeautifulSoup(html_doc, 'html.parser')table_header = odds_soup.find_all('div', {'id' : "odds-data-table", 'class' : 'bt-2'})list = []table_containers = []for tag in table_header:    table_containers += tag.find_all('div', {'class' : 'table-container'})但代码只返回 table_containers 的空列表。我不知道为什么,非常感谢一些帮助。经查看该网站,它看起来像这样:
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您找不到它的原因是您table_header没有找到任何东西,而您没有从您那里得到任何东西的原因table_header 是因为您有404状态代码。您只需执行 a.status_code并打印即可检查您的状态代码。

来源维基百科

HTTP 404、404 Not Found、404、404 Error、Page Not Found、File Not Found 或 Server Not Found 错误消息是超文本传输协议 (HTTP) 标准响应代码,在计算机网络通信中,表示浏览器已能够与给定服务器通信,但该服务器找不到什么...

我对你的代码做了一些修改并打印了它,status code它说404

import requests

from bs4 import BeautifulSoup


link = "https://www.oddsportal.com/basketball/usa/nba/los-angeles-lakers-miami-heat-IqLamQfL/#over-under;1"


html_doc = requests.get(link)

print(html_doc.status_code)

odds_soup = BeautifulSoup(html_doc.content, 'html5lib')


table_header = odds_soup.find('div',{"id":"odds-data-table"})



'''

list = []

table_containers = []

for tag in table_header:

    table_containers += tag.find_all('div', {'class' : 'table-container'})

'''

输出:


404

[Finished in 2.1s]


查看完整回答
反对 回复 2023-10-26
?
浮云间

TA贡献1829条经验 获得超4个赞

只需选择它们即可:

soup.find_all("div", class_="table-header-light odd first")


查看完整回答
反对 回复 2023-10-26
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

为此需要使用 selenium 并传递到 BS4。然后 .append() 到您的列表或打印它。


driver = webdriver.Chrome()

driver.get('https://www.oddsportal.com/basketball/usa/nba/los-angeles-lakers-miami-heat-IqLamQfL/#over-under;1')

odds_soup = BeautifulSoup(driver.page_source , 'html.parser')

table_header = odds_soup.find_all("div", class_="table-header-light odd first")

for tag in table_header:

    print(tag)

显示器


<div class="table-header-light odd first"><strong><a href="" onclick="page.togleTableContent('P-201.50-0-0',this);return false;">Over/Under +201.5 </a></strong><span class="avg chunk-odd-payout"></span><span class="avg chunk-odd nowrp"></span><span class="avg chunk-odd nowrp"></span><span class="odds-cnt">(0)</span><span class="odds-co"><a class="more" href="" onclick="page.togleTableContent('P-201.50-0-0',this);return false;">Compare odds</a></span></div>



查看完整回答
反对 回复 2023-10-26
  • 3 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信