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-23 16:33
门头沟学院 Java
本人某中9本科,成绩中等,目前没科研没实习,目前后端学到了javaWeb,开始没定好方向,在学国外课程,走工程路线起步有点晚了,到这个时间点了还在学JavaWeb,顿感迷茫,不知道是坚持走下去还是寒假去准备考研。考研这个路弄得我还是心痒痒的,因为从众考研的人也不在少数,所以会有这方面的心理安慰吧,就是“不行我可以去考研啊”,而且意味着三年的缓冲,为了复试还有积攒经验美化简历,其实现在也可以去申入实验室打杂;就业可能意味着多些工作经验,工程岗应该到后面还是经验大于学历?还是有点迷茫了,求助好心人有无路线启发
千千倩倩:同27给点建议,现在这个时间点可以快速看完外卖和点评,不用跟着敲,但一定要在看的时候总结每个部分的整个业务流程,对其中的实现有一个大概的印象。然后直接开始看八股,刷算法。八股和算法最好还是在项目学习中穿插着看。如果计算机基础,算法这些基础好,加上每天刻苦学习,两周可以达到勉强能面试的水平,到时候就直接海投中小厂,在约面和面试的过程中不断巩固知识。没找到实习也没关系,就当积累经验。再沉淀一波直接明年三月开始投暑期,毕竟是9本,总是有面试机会的,只要你这三个月不懈怠,面试发挥得一定不错,只要拿到一个中,大厂暑期实习,秋招就有竞争力了。总得而言,现在还有机会,但是时间非常紧张,需要你结合自己情况考虑,共勉
你会选择考研还是直接就业
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务