Python 是否所有DIV都可以进行刮削(美容、硒)?
我试图从网站上搜集一些信息——对于大多数div信息来说,这很好——但我在阅读一些特定div时遇到了问题。起初,我只是用“正常”的bs4请求进行了尝试——但后来也用了selenium——但我仍然没有得到任何数据 下面你可以找到我的完整代码。 它适用于此搜索的响应:Python 是否所有DIV都可以进行刮削(美容、硒)?,python,selenium,beautifulsoup,Python,Selenium,Beautifulsoup,我试图从网站上搜集一些信息——对于大多数div信息来说,这很好——但我在阅读一些特定div时遇到了问题。起初,我只是用“正常”的bs4请求进行了尝试——但后来也用了selenium——但我仍然没有得到任何数据 下面你可以找到我的完整代码。 它适用于此搜索的响应: tmpDiv = soup.find ("div", {"id": "financial-strength"}) 但它不适用于该部门: tmpDiv = soup.find
tmpDiv = soup.find ("div", {"id": "financial-strength"})
但它不适用于该部门:
tmpDiv = soup.find ("div", {"id": "analyst-estimate"})
它只输出数据
<div class="children" data-v-39722e0c="" id="analyst-estimate" style="min-
height:200px;display:block;">
</div>
我听说这可能是一个“延迟加载网站”——但selenium访问是否应该等到整个网站加载了所有内容后再进行?会发生什么?
有两件事,为什么你得不到结果:
selenium
请求网站后,您还可以使用requests
请求网站,并将响应分配给soup
请求
特定行
element = driver.find_element_by_id("analyst-estimate")
driver.execute_script("arguments[0].scrollIntoView();", element)
分析师估计
2021年9月
2022年9月
2023年9月
收入(百万美元)
313003.40
328872.10
341577.60
息税前利润(百万美元)
76803.87
81038.89
84830.53
息税折旧摊销前利润(百万美元)
88706.60
92604.88
94034.53
每股收益(元)
3.94
4.28
4.55
无NRI的每股收益(美元)
3.97
4.27
4.55
每股收益增长率(%)
10.04
每股股息(美元)
0.74
0.82
1.15
效果很好-非常感谢!顺便说一句:没有selenium/chromedriver.exe也有办法做到这一点吗?关于你的问题,请看
element = driver.find_element_by_id("analyst-estimate")
driver.execute_script("arguments[0].scrollIntoView();", element)
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
link = "https://www.gurufocus.com/stock/AAPL/summary"
driver = webdriver.Chrome ('C:\Program Files\ChromeDriver\chromedriver.exe')
driver.get (link)
time.sleep(2.5)
element = driver.find_element_by_id("analyst-estimate")
driver.execute_script("arguments[0].scrollIntoView();", element)
time.sleep(1)
soup = BeautifulSoup (driver.page_source, 'html.parser')
# tmpDiv = soup.find ("div", {"id": "financial-strength"})
tmpDiv = soup.find ("div", {"id": "analyst-estimate"})
print(tmpDiv.prettify())