python 使用selenium 获取js渲染后的页面信息
一、介绍
二、代码
三、问题
一、介绍
现在的网站以及页面,一般都是js动态渲染,抓到的信息就与实际不符,所以需要加载js的工具,这里使用的就是selenium
Selenium 是一个用于自动化测试的工具,可以模拟浏览器的行为来执行各种操作。在爬虫中,我们可以使用 Selenium 对网页进行模拟操作,以便获取动态渲染的页面内容。
二、代码
1.安装selenium
pip install selenium
2.配置webdriver
先查看chrome版本,下面操作有可能触发自动更新,看之前先关闭自动更新功能
进入webdrive页面, 找到对应版本, 地址:跳过去
如果你的chrome 版本太高,请回退并关闭自动更新功能,不然可以不适配,有未知错误的风险。
选择对应系统下载,放到python script 文件夹下面
关闭自动更新网上很多,可以自行搜索,以下打个样:
关闭服务
3.代码使用
def test2(): options = webdriver.ChromeOptions() # 使用无头浏览器,就是没界面产生 options.add_argument('--headless') # 关闭GPU渲染 options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=options) # 请求url driver.get('https://www.douyin.com/video/7279978850438761780') # 打印出网页的title print(driver.title) # 等待js执行渲染下,根据实际情况调整 time.sleep(2) """ find_element_by_id() find_element_by_name() find_element_by_xpath() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_tag_name() find_element_by_class_name() find_element_by_css_selector() """ # 通用搜索方法 """ class By: ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector" """ data = driver.find_elements(By.CSS_SELECTOR, ".xg-video-container > video > source") if len(data) > 0: print(data[2].get_attribute('src')) print(data) # 关闭浏览器 driver.quit()
三、问题