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

selenium爬取搜狗网站新闻的小Demo

使用之前请确保自己chrome浏览的版本与chromedriver的版本一致,
Mac确保chromedriver已经放到python的bin目录中
Windows确保chromedriver已经放到python.exe同目录中
当前selenium Version: 3.141.0,4版本后面改为:find_element(By.CLASS_NAME, VALUE)等等

import time
from lxml.html import etree
from selenium import webdriverheaders = {'User-Agent': 'USER-AGENT'	# 填写自己浏览器的user-agent
}def test_requests(url):browser.get(url=f'{url}{send_content}')handle1 = browser.current_window_handle     # 保留当前页面,如果有需要翻页可以使用到# selenium 4版本使用browser.find_element(By.CLASS_NAME, 'news-list')new_list = browser.find_element_by_class_name('news-list')  # 根据clss定位ul(没有id,只能用class,利用id的唯一性是最优解)# selenium 4版本使用browser.find_elements(By.TAG_NAME, 'h3')ul_list = new_list.find_elements_by_tag_name('h3')  # 获取ul中所有H3标签for ul in ul_list:a_elements = ul.find_elements_by_tag_name('a')  # 查询H3标签中所有的a标签for a in a_elements:print(a)time.sleep(1)	# 用睡眠时间等待或者使用IP池a.click()   # 点击每个a标签handles = browser.window_handles[1:]    # 获取浏览器的所有页面,并将第一个总页面切片掉print(len(handles))for ha in handles:browser.switch_to.window(ha)    # 循环进入每一个页面解析需要的内容html = browser.page_sourcetree = etree.HTML(html)title = tree.xpath('/html/body/div[2]/div[2]/div[2]/div/div[1]/h1/text()')print(title)if __name__ == '__main__':first_url = 'https://weixin.sogou.com/weixin?ie=utf8&s_from=input&_sug_=n&_sug_type_=&type=2&query='send_content = '企业预警通·每日风险预警早报2024年8月13日星期二'browser = webdriver.Chrome()test_requests(first_url)browser.close()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【自用】Python爬虫学习(一):爬虫基础与四个简单案例
  • petalinux-config -c busybox 报错
  • Linux2.6内核进程调度队列详细讲解
  • XXX【4】策略模式
  • ffmpeg开发者视频剪辑器
  • 【python】OpenCV—Optical Flow
  • 人工智能的新兴能力:我们是在追逐神话吗
  • 网络协议九 应用层 HTTPS
  • LeetCode 205 同构字符串
  • SpringBoot--05--整合WebSocket,实现全双工通信
  • python 已知x+y=8 求x*y*(x-y)的最大值
  • 一些有趣的XSS注入GAME
  • 【Delphi】中多显示器操作基本知识点
  • vmware安装openEuler操作系统
  • C++(11)类语法分析(2)
  • 深入了解以太坊
  • exports和module.exports
  • extjs4学习之配置
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • jquery ajax学习笔记
  • php ci框架整合银盛支付
  • spring-boot List转Page
  • VuePress 静态网站生成
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 今年的LC3大会没了?
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 实战|智能家居行业移动应用性能分析
  • 使用 Xcode 的 Target 区分开发和生产环境
  •  一套莫尔斯电报听写、翻译系统
  • 运行时添加log4j2的appender
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • PostgreSQL之连接数修改
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • $GOPATH/go.mod exists but should not goland
  • (52)只出现一次的数字III
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (pycharm)安装python库函数Matplotlib步骤
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)为什么要选择C++
  • (转) RFS+AutoItLibrary测试web对话框
  • (转载)hibernate缓存
  • .NET C# 使用GDAL读取FileGDB要素类
  • .net core 6 redis操作类
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net Memory Profiler的使用举例
  • .net 调用php,php 调用.net com组件 --
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...