Day36:动态网页爬取

alt

上一节我们讲解了使用Python爬取静态网页的信息,但是该方法只能直接获取当前网页HTML的信息,现在很多网站都需要点击才能获取更多信息,这种时候就需要用到我们的动态网页爬取了。

在动态网页爬取中,我们经常会使用Selenium库来模拟浏览器行为,并通过浏览器加载和执行JavaScript代码来获取动态生成的内容。本节将以猫眼电影https://www.maoyan.com/board/4?offset=0 为例,讲解如何爬取、处理动态网页,并重点介绍Selenium库的各个函数和方法。

Selenium库基本函数

Selenium库拥有比静态解析库更为复杂的函数与操作,因为它需要模拟浏览器的行为,所以会涉及创建浏览器对象、页面操作、定位元素、等待页面等操作。我们先一起来看一下:

  1. 创建浏览器对象:
    • webdriver.Chrome():创建Chrome浏览器对象。
    • webdriver.Firefox():创建Firefox浏览器对象。
    • webdriver.Edge():创建Edge浏览器对象。
    • webdriver.Safari():创建Safari浏览器对象。
  2. 页面操作:
    • get(url):打开指定URL的网页。
    • back():返回上一个页面。
    • forward():前进到下一个页面。
    • refresh():刷新当前页面。
  3. 定位元素:
    • find_element(By, value):根据定位方式和定位表达式定位单个元素。
    • find_elements(By, value):根据定位方式和定位表达式定位多个元素。
    • 支持的定位方式有:By.IDBy.NAMEBy.CLASS_NAMEBy.TAG_NAMEBy.LINK_TEXTBy.PARTIAL_LINK_TEXTBy.CSS_SELECTORBy.XPATH
  4. 元素操作:
    • element.click():点击元素。
    • element.send_keys(keys):向元素发送键盘输入。
    • element.clear():清空元素内容。
    • element.text:获取元素文本内容。
    • element.is_displayed():判断元素是否可见。
    • element.is_selected():判断元素是否被选中。
  5. 等待页面元素:
    • WebDriverWait(driver, timeout).until(EC.condition):创建等待对象,等待指定条件满足。
    • 支持的等待条件有:EC.presence_of_element_locatedEC.visibility_of_element_locatedEC.element_to_be_clickable等。
  6. 浏览器控制:
    • driver.maximize_window():最大化浏览器窗口。
    • driver.minimize_window():最小化浏览器窗口
    • driver.switch_to.default_content():切换回默认的页面上下文。
    • driver.switch_to.alert:处理弹出框。
    • driver.execute_script(script):执行JavaScript脚本。

爬虫猫眼案例

现在我以猫眼电影https://www.maoyan.com/board/4?offset=0 页面为例,展示如何使用selenium爬取动态网页。

  1. 导入必要的库:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from s

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

大模型-AI小册 文章被收录于专栏

1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人

全部评论
这个确实比静态复杂,好多东西都找不到
点赞
送花
回复
分享
发布于 2023-07-14 15:21 上海

相关推荐

投递字节跳动等公司10个岗位
点赞 评论 收藏
转发
头像
05-14 12:29
安卓
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务