简介
当我们使用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成功提取到了我们想要的页面元素:

效果展示