python网络爬虫selenium

简介: python网络爬虫selenium

1.准备

pip install selenium

以Chrom浏览器为例,
安装相应版本的chromdriver驱动程序,并添加为环境变量
安装链接:安装chromdriver

2.常用属性和方法

from selenium import webdriver
import time

# 实例化一个浏览器
driver = webdriver.Chrome()

如果没有将chromedriver放在系统的环境变量路径,则需要在实例化时加上一个参数executable_path 来指定驱动的路径。
运行上述代码,会自动将Chrome浏览器打开,但是没有输入任何url。
在这里插入图片描述


打开网页,窗口最大化,停留3秒,最后关闭。

from selenium import webdriver
import time

# 实例化浏览器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()

# 输入网址
driver.get('https://www.baidu.com/')
time.sleep(3)  # 停留3秒钟
driver.quit()      # 关闭浏览器

浏览器打开后,
先用maxsize_window()方法 将窗口调至最大化,
然后用get方法输入网址并跳转的该网站。
sleep()方法停留3秒钟
使用
quit()
方法关闭浏览器


调用百度页面的搜索框
首先要给搜索框进行元素定位
在这里插入图片描述
可以看到该Element的id值为’kw’。
使用 find_element_by_id() 方法定位到该标签
使用send_keys() 方法输入搜索内容,以CSDN为例
然后再一次使用 **find_element_by_id()**方法定位到“百度一下”按钮,使用click方法点击其。

# 定位搜索框并输入搜索内容
driver.find_element_by_id('kw').send_keys('CSDN')

# 点击 百度一下
driver.find_element_by_id('su').click()

__
退出当前页面

driver.close()      退出当前页面

区别于quit()方法,quit()指的是关闭整个浏览器,而close()指的是关闭当前网页。


回退

driver.back()

前进

driver.forward()

  • page_source 页面源码
  • get_cookies() 获取cookie
  • current_url 当前请求的URL地址
print(driver.page_source)      # 页面源码
print(driver.get_cookies())    # 获取cookie
print(driver.current_url)    # 当前请求的URL地址

截图并保存

driver.save_screenshot('file_name.png')
目录
相关文章
|
14天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
3天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
23 0
|
1天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
2天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
2天前
|
机器学习/深度学习 算法 Python
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测
47 12
|
4天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
18 0
|
4天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
13 0
|
7天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
8天前
|
机器学习/深度学习 Python
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
19 0
|
8天前
|
JSON 网络协议 API
Python网络编程面试题精讲
【4月更文挑战第15天】本文介绍了Python网络编程的面试重点,包括基础Socket编程、HTTP协议与requests库、异步编程与asyncio库。通过实例解析常见面试题,强调了非阻塞套接字、异常处理、HTTP状态码检查以及异步任务管理等关键点。提供代码示例帮助读者巩固概念,助力面试准备。
15 0