采用Selenium模拟浏览器获取动态网页数据


简介

当我们使用urllib库或Scrapy下载HTML网页时会发现,我们要提取的网页元素并不在我们下载到的HTML之中,无形之中给我们的工作造成了难度,通过观察,我们发现我们想要的元素是在我们的某些操作下通过js事件动态生成的。
爬取动态页面目前来说有两种方法

  • 分析页面请求
  • selenium模拟浏览器行为(此文主要介绍selenium爬取某网站js中页码小标签的案例)
案例问题展示.png

解决代码:

#coding=utf-8
from bs4 import BeautifulSoup 
from selenium import webdriver
 
url = 'https://www.hongxiu.com/free/all'
driver=webdriver.Chrome()
#此功能为控制浏览器最大化显示
# driver.maximize_window()
driver.get(url)
data = driver.page_source
# 将文件通过bs4的方式解析
soup = BeautifulSoup(data, 'lxml')
# 提取页面的li标签
grades = soup.find_all("li", class_ = "lbf-pagination-item")
pages = grades[7].find_all('a')
print(">>>>>>>",pages)
# 获取a标签中的文本元素
print(pages[0].text)
# 关闭浏览器
driver.close()

结果通过chromedriver成功提取到了我们想要的页面元素:


效果展示
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容