python-3.x - Python3 beautifulsoup4 和 selenium
问题描述
我编写了这段代码,用于从 livecore.com 抓取分数详细信息。但我有一些问题。也许我写了不正确的代码。请帮我。
代码运行输出:
Traceback (most recent call last):
File "web.py", line 15, in <module>
box2 = box.find_all('a',{'class' : 'match-row scorelink'})
AttributeError: 'NoneType' object has no attribute 'find_all'
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://livescore.com')
res = driver.execute_script("return document.documentElement.outerHTML")
driver.quit()
#page = requests.get('https://livescore.com')
soup = BeautifulSoup(res, 'lxml')
box = soup.find('div',{'class':'container'})
box2 = box.find_all('a',{'class' : 'match-row scorelink'})
for data in box2:
test = data.find('div',{'class': 'sco'}).text.replace('\n', '')
print (test)
解决方案
感谢您的回答。解决的问题
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://livescore.com')
res = driver.execute_script("return document.documentElement.outerHTML")
driver.quit()
#page = requests.get('https://livescore.com')
soup = BeautifulSoup(res, 'lxml')
box = soup.find('div',{'data-type':'container'})
box2 = box.find_all('a',{'class' : 'match-row'})
for data in box2:
test1 = data.find('div',{'class': 'sco'}).text.replace('\n', '')
test2 = data.find('div',{'class': 'ply tright name'}).text.replace('\n', '')
test3 = data.find('div',{'class': 'ply name'}).text.replace('\n', '')
print(test2,test1,test3)
推荐阅读
- html - 有没有办法通过请求 HTML 找出 DOM 层次结构中的元素之上的元素
- python - 与保存的模型相比,加载的模型接收到不同的预测
- vue.js - Vue.js 在需要时从子级渲染到父级,就像路由器视图一样
- objective-c - 当我使用在 Objective-c 中定义的宏时,Swift 条件编译无法正常工作
- selenium - 除了 http://localhost:4444/grid/console 之外,有没有办法通过 Selenium Grid 获取注册节点的数量
- python - 如果字典中的项目 == True -> 将字典名称作为字符串返回
- javascript - Bootstrap - 如何在导航栏中使用相等的宽度?
- scala - 如何确保我的 Apache Spark 设置代码只运行一次?
- javascript - Counter Up Number 显示的金额与指定的金额不同
- sql - 如果每个字符串不同,如何在 MS Access 中使用 SQL 从字符串中提取特定关键字?