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]
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>
添加回答
举报