当前位置: 首页 > news >正文

day4 selenium爬取数据总结

day4 selenium爬取数据

一、selenium基本操作
导入相关模块:
from selenium.webdriver import Chrome
(一)、创建浏览器对象
b = Chrome()
(二)、打开网页(需要爬取哪个页面的数据就打开该页面对应的网页地址)
案例:爬取豆瓣电影250排行榜
b.get('https://movie.douban.com/top250?start=0&filter=')
(三)、获取网页源代码(注意:不管以什么方式更新了界面内容,page_source也会自动更新)
print(b.page_sourse)   # 获取豆瓣top250的页面源代码
二、selenium的翻页
导入相关模块
import time   # 控制停顿时间的模块from selenium.webdriver import Chrome
(一)、翻页方法1
  1. 找到不同页面地址的变化规律,利用循环实现多页数据的请求
b = Chrome()  # 这个是打开浏览器,一定要放在循环的外面for x in range(0, 256, 25):  # 找出的页数变化b.get('https://movie.douban.com/top250?start={x}&filter=')print(b.page_source)
(二)、翻页方法2
  1. 点击翻页按钮,刷新页面内容,在刷新后再次获取网页源代码
导入模块:
from selenium.webdriver.common.by import By
b = Chrome()
b.get('https://movie.douban.com/top250?start=0&filter=')for _ in range(5):print(b.page_source)# 获取下一页按钮# next = b.find_element(By.CLASS_NAME, 'next')# 点击下一页按钮# next.click()b.find_element(By.CSS_SELECTOR, '.next')
  1. 翻页方法2涉及的知识点
  • selenium获取标签
浏览器对象.b.find_element(获取方式,数据)    —— 返回符合条件的第一个标签,结果是标签对象
浏览器对象.b.find_elements(获取方式,数据)    —— 返回符合条件的所有标签,结果是列表,列表中的元素是标签对象获取方式:
By.ID   ——  通过ID属性值获取标签
By.CLASS_NAME   ——  通过class属性值获取标签
By.CSS_SELECTOR   —— 通过css选择器获取标签
By.LINK_TEXT     —— 通过a标签的标签内容获取标签
By.PARTIAL_LINK_TEXT   —— 通过标签内容所包含的部分内容来获取完整标签
  • 操作标签
1)输入框输入内容:输入框对应的标签.send_kyes(需要输入的内容)  ——  括号里输入需要输入的内容
2)点击标签:标签对象.click()
三、用代码控制浏览器滚动
js中页面滚动的代码:window.scrollBy(x方向的偏移量,y方向的偏移量)

滚动1次

b.execute_script('window.scrollBy(0,500)')   # 顺着Y轴滚动500

滚动多次

for x in range(10):   # 滚动10次b.execute_script('window.scrollBy(0,500)')time.sleep(1)   # 每滚动一次就停顿1秒
input(‘结束’)    # 如果不想关闭浏览器就加个input,入股要关闭则不加
http://www.lryc.cn/news/45444.html

相关文章:

  • 信息收集之WAF绕过
  • 从数据到智慧,TOOM舆情监测系统让你的决策更加精准!
  • ChatGPT中文版网页插件-如何体验chatGPT
  • Docker的网络模式
  • 基于vue3.2、three实现地图在地图加载
  • 【C++】---优先级队列 仿函数
  • 图的遍历算法
  • 【蓝桥杯集训·每日一题】 AcWing 3996. 涂色
  • 人工智能中的Web端编程
  • jsp+mysql+J2EE校园自行车租赁系统cdA1A2程序
  • 当营养遇上肠道菌群:探究其对儿童健康的影响
  • vue尚品汇商城项目-day01【4.完成非路由组件Header与Footer业务】
  • IDEA安装教程(图文详解,一步搞定)
  • 【01 DualCam Porting】
  • redis --- string类型的使用
  • 康耐视visionpro-机器视觉定位引导-经验总结-来自视觉人粉丝分享
  • 包管理工具npm
  • ChatGPT正进军各行各业,抓住机遇,拥有无限的可能性。
  • Maven 多模块管理
  • crash 内核调试工具 ps 指令 显示的进程状态 RU, IN, UN, ZO, ST, TR, DE, SW, WA, PA 什么意思
  • Spring《二》bean的实例化与生命周期
  • java与kotlin 写法区别
  • 服务器运行深度学习代码使用指南
  • 计算机组成原理 - 2. 数据的表示和运算
  • 【js】基础知识点--语句,break和continue,switch,with,for..in,do-while,while
  • 【C++】迭代器
  • 数据可视化在前端中的应用
  • FFmpeg 合并视频文件没声音,不同步原因
  • 绕不开的“定位”
  • 《Effective Objective-C 2.0 》 阅读笔记 item12