Python+selenium+chromedriver实现爬虫示例代码

下载好所需程序

1.Selenium简介

Selenium是一个用于Web应用程序测试的工具,直接运行在浏览器中,就像真正的用户在操作一样。

2.Selenium安装

方法一:在Windows命令行(cmd)输入pip install selenium即可自动安装,安装完成后,输入pip show selenium可查看当前的版本

方法二:直接下载selenium包:

selenium下载网址

Pychome安装selenium如果出现无法安装,参考以下博客
解决Pycharm无法使用已经安装Selenium的问题

3.禁止谷歌浏览器自动更新

搜索本地:管理工具-服务-Google自动更新服务-选择禁止

 

安装浏览器对应的驱动driver
我这里用的是谷歌,选择对应的驱动版本

驱动的下载地址如下:

http://chromedriver.storage.googleapis.com/index.html

 

win32、win64的都下载win32.zip的

将下载的chromedriver进行解压,并将文件复制或移动到,浏览器快捷方式所在目录。

环境变量配置
1.Python环境配置
2.chromedriver环境配置
3.pychrome的python环境指向自己电脑安装好的python

注意:将下载好的chromewebdriver.exe驱动放在Python的安装路径下的Scripts里面,同时将Scripts路径添加到PATH中,这样每次运行python的时候就会自动加载驱动

代码实现

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#已经准备环境:webdriver:Google已经安装好;环境变量配置好;pip install selenium;

#selenium是一个包,包有很多对象,对象有属性,方法。

from selenium import webdriver

browser=webdriver.Chrome()#打开浏览器

url="https://news.qq.com/zt2020/page/feiyan.htm#/global?nojump=1"#获取数据的地址

#请求浏览器内容:请求方式:get,post,token

browser.get(url)

#css选择器,id选择器:#开头,class选择器:.开头,标签选择器:p,span,div。

coronavirus_countent=browser.find_element_by_class_name('d')#定位到class选择器d这个内容

print(coronavirus_countent)#查看内容,session,一种缓存机制,通过浏览器解析,然后缓存的内容

# <selenium.webdriver.remote.webelement.WebElement (session="a1aa22161543b44f599e97b35dbc1ac5", element="fe645993-43cb-46cf-83a7-2488dd3d838a")>

print(coronavirus_countent.text)#查看当前css.class中的d的内容

coronavirus_time=browser.find_element_by_class_name('ml')#定位到class选择器d这个内容

print(coronavirus_time.text)

coronavirus_data=browser.find_element_by_class_name('nowConfirm')#定位到class选择器d这个内容

print("=======")

print(coronavirus_data.text)

print("=====找nowConfirm下面的字内容")

coronavirus_sub=coronavirus_data.find_element_by_class_name('addnum')

print(coronavirus_sub.text)

browser.quit()

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

炫酷的倒计时引导页

文章目录 文件分布介绍效果预览代码css样式Locationplayer.css js样式player.js 文件分布介绍 效果预览 代码 css样式 Location html {height: 100%;}body {font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", Tahoma, "Hirag…

利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式

举个例子吧,目前的业务需要把取到的数据,进行分组,然后好用另一个方法进行数据处理。 然后,就以下面的为例子,将取到的list集合,将取到的数据以性别分组,以性别为K,以性别数量为v,。 代码示例: package Lx;import java.util.ArrayList; import java.util.List; imp…

c语言-函数指针

目录 前言一、函数指针1.1 函数指针定义1.2 函数指针调用函数1.3 函数指针代码分析 总结 前言 本篇文章介绍c语言中的函数指针以及函数指针的应用。 一、函数指针 函数指针&#xff1a;指向函数的指针。 函数在编译时分配地址。 &函数名 和 函数名代表的意义相同&#xf…

外包干了3个多月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

SpringIOC之support模块DefaultMessageSourceResolvable

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Profinet转Modbus网关助你畅享智能工业

Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;具有广泛的应用价值。无论是汽车制造、机械加工还是能源管理&#xff0c;都可以通过使用该网关&#xff0c;实现设备之间的高效通信。其次&#xff0c;Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;…

Java中 super 和 this 对比着学习

1、super是一个关键字&#xff0c;全部小写。 2、super 和 this 对比着学习。 this&#xff1a; this 能出现在实例方法和构造方法中。 this 的语法是&#xff1a;“this.”、“this()” this 不能使用在静态方法中。 this. 大部分情况下是可以省略的。 this. 什么时候不能省略…

matlab中如何将视频保存成图像

利用MATLAB将视频的每一帧保存成一幅图像&#xff0c;并自动命名。本文方法简单&#xff0c;容易学习。 首先&#xff0c;读入视频。代码如下&#xff1a; mov VideoReader(xxxxxx.avi); % 将xxxxxx.avi读入MATLAB中&#xff0c;并用名为mov的结构体保存 fnum mov.Numbe…

异步http接口调用库:httpx

谈到http接口调用&#xff0c;Requests大家并不陌生&#xff0c;例如&#xff0c;robotframework-requests、HttpRunner等HTTP接口测试库/框架都是基于它开发。这里将介绍另一款http接口测试框架:httpx。 它的API和Requests高度一致。 github: GitHub - encode/httpx: A next…

智慧校园的“边缘智能“: 打造未来教育的桥梁

在科技飞速发展的时代&#xff0c;智能已经渗透到我们生活的各个角落。而当智能遇上教育&#xff0c;会激发出怎样的火花呢&#xff1f;今天&#xff0c;我们就来聊聊这个热门话题——智慧校园和边缘智能网关的结合&#xff0c;它们是如何共同塑造未来教育的新形态。 什么是边…

Pygame和Cocos2d

Pygame和Cocos2d都是 Python 中常用的游戏引擎&#xff0c;但它们的设计目标、特点和使用场景略有不同。 Pygame与Cocos2d&#xff0c;目前是使用人数最多的两个Python游戏库。根据某知名产品点评网站的数据显示&#xff0c;排名前五的Python 2D游戏库如下图所示。其中&#x…

CEC2017(Python):六种算法(PSO、DBO、HHO、SSA、DE、GWO)求解CEC2017(提供完整Python代码)

一、6种算法简介 1、粒子群优化算法PSO 2、蜣螂优化算法DBO 3、哈里斯鹰优化算法HHO 4、麻雀搜索算法SSA 5、差分进化算法DE 6、灰狼优化算法GWO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. …

计算机毕业论文内容参考|基于区块链技术的电子健康记录系统的设计与实现

文章目录 摘要前言绪论课题背景国内外相关研究课题内容区块链技术介绍系统分析用户需求分析系统设计系统实现系统测试总结与展望摘要 本文介绍了基于区块链技术的电子健康记录系统的设计与实现。该系统旨在解决传统电子健康记录系统存在的数据安全性、数据隐私性和数据互操作性…

Visual studio 2010的安装与使用

一、下载及安装 1、下载软件。 百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/115RibV7dOI_y8LUGW-94cA?pwd4hrs 提取码&#xff1a;4hrs 2、右键解压下载好的文件。 3、找到cn_visual_2010_……/Setup.hta&#xff0c;双击运行。 4、选择第三个“ Visual…

Linkage Mapper 工具参数详解——Linkage Priority

从以下链接中获取内容&#xff08;识别二维码、填写问卷、获取联系方式&#xff09; Linkage Mapper 报错_python error on **line 806** of lm_util.py in link-CSDN博客 Linkage 优先级不是表示廊道的优先级&#xff0c;Linkage 与廊道都是名词&#xff0c;代表通道走廊的意…

Python 集合(Sets)1

集合 集合用于在单个变量中存储多个项。集合是 Python 中的 4 种内置数据类型之一&#xff0c;用于存储数据集合&#xff0c;其他 3 种是列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;和字典&#xff08;Dictionary&#xff09;&#xff0c;它们都具有…

基于等保合规和滑动标尺模型的云安全建设方法

文章目录 前言一、云计算平台面临的安全挑战(一)新兴风险和传统风险的冲击(二) 云计算安全日益严峻,面临更大的安全挑战(三)提升对云计算平台的全面系统性安全建设的认知二、在云计算安全建设上的误区(一)缺乏整体视角构建云上安全,安全及运营存在割裂(二) 缺乏云内…

操作系统期末复习大题---经典进程的同步问题

目录 一、经典进程的同步问题 1. 利用记录型信号量解决生产者—消费者问题 执行流程&#xff1a; ”生产者-消费者”问题模型代码框架如下&#xff1a; 注意&#xff1a; 小结&#xff1a; 复习典型例题&#xff1a; 解答&#xff1a; 2. 利用AND信号量解决生产者——…

判断当前时间是否在给定的时间区间内

直接看代码 package com.lsm.practice.date;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/*** author Eme* since 2024-01-05**/public class DateUtils {/*** 通过指定的Date获取新的Date* 如果…

【代码解析】代码解析之查看购物车(1)

上一篇&#xff1a;代码解析之添加购物车&#xff08;1&#xff09; https://blog.csdn.net/m0_67930426/article/details/135412823 GetMapping("/list")public R<List<ShoppingCart>> list(){log.info("查看购物车...");LambdaQueryWrapper…