python-3.x - 无法使用美汤提取网页数据
问题描述
url = "https://www.telegraph.co.uk/formula-1/2018/08/25/f1-live-belgian-grand-prix-2018-qualifying-latest-updates/"
soup = bs(urlopen(url), "lxml")
divs = soup.findAll('div')
base_url = "https://www.telegraph.co.uk"
images = []
print (divs)
[]
我得到空输出。我认为这个页面是动态加载的。如何从此页面中提取 div。
解决方案
页面内容由 JS/动态加载,所以你必须使用 selenium ......你可以做这样的事情......
from bs4 import BeautifulSoup
from selenium import webdriver#you need to install selenium
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
#copy your chromedriver to python folder
driver = webdriver.Chrome(chrome_options=options)
url = ("https://www.telegraph.co.uk/"
"formula-1/2018/08/25/f1-live-belgian"
"-grand-prix-2018-qualifying-latest-updates/")
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'lxml')
divs = soup.findAll('div')
print(divs)
推荐阅读
- c - 程序在 if 语句中突然中断
- postman - 将爪子环境导出到 Postman
- npm - 如何阻止纱线工作区抱怨未满足的对等依赖?
- python - 为什么这个简单的 Python 脚本会破坏解释器?
- angular - div中的动态图像加载
- python - 我应该如何对该功能进行单元测试以避免业务逻辑和重言式?
- python - 如何确定安装 conda 包需要启用的通道?
- git - git p4 push p4 repo 到 gitlab
- java - Openfeign ErrorDecoder 导致 java.io.IOException: stream is closed
- python - jupyter notebook 在 python 2.7 甚至 anaconda 环境显示版本是 python 3.6