Python爬虫的第二种姿势,Selenium框架的一些经典案例讲解!

Python爬虫:最牛逼的 selenium爬取方式! Python爬虫:最牛逼的 selenium爬取方式! 作为一个男人 在最高光的时刻 这是小编准备的python爬虫学习资料,加群:700341555即可免费获取! Python爬虫:最牛逼的 selenium爬取方式! 就是说出那句 Python爬虫:最牛逼的 selenium爬取方式! 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让... 阅读详情

文章目录

 

  • selenium模块
  • selenium基本概念
  • 基本使用
  • 代码
  • 基于浏览器自动化的操作代码
  • 代码
  • selenium处理iframe:
  • 代码
  • selenium模拟登陆QQ空间
  • 代码
  • 无头浏览器和规避检测
  • 代码
  • selenium模块
  • selenium基本概念
  • selenium优势

便捷的获取网站中动态加载的数据
便捷实现模拟登陆
selenium使用流程:

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!

QQ群:701698587

1.环境安装:pip install selenium

2.下载一个浏览器的驱动程序(谷歌浏览器)

3.实例化一个浏览器对象基本使用
代码

from selenium import webdriver
from lxml import etree
from time import sleep

if __name__ == '__main__':

    bro = webdriver.Chrome(r"E:\google\Chrome\Application\chromedriver.exe")
    bro.get(url='http://scxk.nmpa.gov.cn:81/xk/')

    page_text = bro.page_source
    tree = etree.HTML(page_text)
    li_list = tree.xpath('//*[@id="gzlist"]/li')
    for li in li_list:
        name = li.xpath('./dl/@title')[0]
        print(name)
    sleep(5)
    bro.quit()



基于浏览器自动化的操作代码
#编写基于浏览器自动化的操作代码

- 发起请求: get(url)

- 标签定位: find系列的方法

- 标签交互: send_ keys( 'xxx' )

- 执行js程序: excute_script('jsCod')

- 前进,后退: back(),forward( )

- 关闭浏览器: quit()1

代码

https://www.taobao.com/

from selenium import webdriver
from time import sleep

bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")

bro.get(url='https://www.taobao.com/')

#标签定位
search_input = bro.find_element_by_id('q')
sleep(2)
#执行一组js代码,使得滚轮向下滑动
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)
#标签交互
search_input.send_keys('女装')
button = bro.find_element_by_class_name('btn-search')
button.click()

bro.get('https://www.baidu.com')
sleep(2)
bro.back()
sleep(2)
bro.forward()
sleep(5)
bro.quit()



selenium处理iframe:
- 如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)

- 动作链(拖动) : from selenium. webdriver import ActionChains
    - 实例化一个动作链对象: action = ActionChains (bro)
    - click_and_hold(div) :长按且点击操作
    - move_by_offset(x,y)
    - perform( )让动作链立即执行
    - action.release( )释放动作链对象

代码

https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable

from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")

bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')

bro.switch_to.frame('iframeResult')

div = bro.find_element_by_id('draggable')

#动作链
action = ActionChains(bro)
action.click_and_hold(div)

for i in range(5):
    action.move_by_offset(17,0).perform()
    sleep(0.3)

#释放动作链
action.release()

bro.quit()


selenium模拟登陆QQ空间
代码

https://qzone.qq.com/

from selenium import webdriver
from time import sleep


bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
bro.get('https://qzone.qq.com/')
bro.switch_to.frame("login_frame")

switcher = bro.find_element_by_id('switcher_plogin')
switcher.click()

user_tag = bro.find_element_by_id('u')
password_tag = bro.find_element_by_id('p')
user_tag.send_keys('1234455')
password_tag.send_keys('qwer123')
sleep(1)

but = bro.find_element_by_id('login_button')
but.click()


无头浏览器和规避检测
代码

from  selenium import webdriver
from time import sleep
#实现无可视化界面
from selenium.webdriver.chrome.options import Options
#实现规避检测
from selenium.webdriver import ChromeOptions

#实现无可视化界面
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#实现规避检测
option = ChromeOptions()
option.add_experimental_option('excludeSwitches',['enable-automation'])

bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe",chrome_options=chrome_options,options=option)

bro.get('https://www.baidu.com')
print(bro.page_source)
sleep(2)
bro.quit()

 

Python爬虫:学习selenium的正确姿势!!! 目录前言selenium的安装pip 安装验证安装ChromeDriver的安装下载ChromeDriver环境变量配置验证安装selenium的基本使用介绍简单示例查找元素等待页面加载完成显式等待隐式等待等待条件前进和后退Cookie异常处理最后 前言 在上篇文章中,我为大家介绍了Ajax的分析和抓取方式,这其实也是javascript动态渲染页面的一种方式,通过直接分析Ajax,仍然可以通过requests来实现数据的获取。 不过javascript动态渲染页面不止Ajax这种。有些网站的分页部分可能是 阅读详情

相关推荐

Python轻松实现动态网页爬虫(附详细源码)!

AJAX动态加载网页 一 什么是动态网页 J哥一向注重理论与实践相结合,知其然也要知其所以然,才能以不变应万变。 所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。——来源百度百科 动态网页具有减少工作量、内容更新快、可完成功能多等特点,被很...

爬遍所有网站 1万+

UI自动化测试02

隐式等待,指针之后的页面所有内容都有效,上面写了10,指的是10s,判断如果某个元素没有加载出来,最大超时时间是10s,显示等待设置的时候,需要是给每一个元素单独设置,偶尔有个元素由于业务需要加载时间比较长,则可以给其单独设置显示等待。句柄就类似于每一个标签页的id一样,是唯一的。submit:可以用于表单的提交,可以在某些时候达到和click互换的效果。time.sleep(4) 这个是python中自带的日期时间模块完成的。为了解决页面加载太慢,而代码执行过快,元素定位不到的问题。

徐天伦的博客 733

Python爬虫三剑客:Selenium、Playwright、DrissionPage实战对比

在Python爬虫开发中,处理动态网页是常见挑战。动态网页通常依赖JavaScript渲染,传统HTTP请求库难以直接获取数据。浏览器自动化技术通过模拟真实用户操作,能有效解决此问题,其核心原理是控制浏览器执行JavaScript并获取完整DOM。这项技术对爬虫开发具有重要价值,能应对登录验证、无限滚动等复杂交互场景。Selenium作为经典工具生态成熟,Playwright以现代化API和网络拦截见长,DrissionPage创新性地融合浏览器与请求模式。本文基于实战案例,从安装配置、代码编写、性能表现到

363

关于from selenium import webdriver报错问题

出现这种错误可能存在以下几种可能情况: 1、根本没有安装selenium库; 2、安装了selenium库,可是在导入的时候,仍然提示selenium库不存在。 解决办法: (1)出现第一种问题时: 安装selenium即可,我的另一篇博客有介绍,地址如下: https://blog.youkuaiyun.com/qq_41544550/article/details/88343387 跟着安装...

qq_41544550的博客 1万+

python爬虫涨姿势板块

python 爬虫代码示例

JustinMars的博客 1030

如何配置 OpenClaw 使用免费搜索工具:摆脱付费 API 限制

本文介绍了如何配置OpenClaw使用免费搜索工具来替代付费API。主要内容包括:1)启用内置的web_fetch工具直接获取网页内容;2)创建自定义脚本聚合免费AI资讯源;3)配置其他免费网络工具。文章详细说明了配置步骤,推荐了多个优质免费AI资讯网站,并分析了该方案的优劣势。这种配置方式完全免费且灵活,特别适合预算有限的用户,能够在不依赖付费API的情况下获取所需信息。

dongdeaiziji的专栏 9814

Python 3网络爬虫之Selenium用法

代码摘抄之《Python 3网络爬虫开发实战》

种一棵树,最好的结果是十年前,其次是现在! 2189

openEuler 22.03 安装 openGauss 5.0.2 部署手册

openEuler 22.03 安装 openGauss 5.0.2 部署手册

全国服务器高效代维 1424

Selenium使用

Selenium功能、常见问题和解决方法

weixin_50631440的博客 3360

CESM笔记——CESM1.0-CESM1.2.2-CESM2.1.3三个版本模式工作流对比

最近测试了CESM1.0,CESM1.2.2和CESM2.1.3三个版本,不同版本在workflow上有一些区别,来做点笔记。 CESM1.0 测试compset:B_2000,F_2000 workflow: 1. create_newcase -case ~/CESM/cesm1_0/script/B_2000 -compset B_2000 -res f19_g16 -mach tianhe 2. cd B_2000 (optional) env_mach_pes.xml ##修改核数,

砍柴姑娘Jourosy的博客 4944

HAL库硬件SPI驱动ST7735 TFT屏幕:从零实现高效刷屏与图形绘制

本文详细介绍了如何使用STM32的HAL库硬件SPI驱动ST7735 TFT屏幕,从硬件连接到SPI配置优化,再到图形绘制与文本显示的实现。重点分享了DMA传输、局部刷新等高级优化技巧,显著提升刷屏效率,帮助开发者快速掌握屏幕驱动技术并应用于实际项目。

pink的博客 741

Python使用Selenium WebDriver的入门介绍及安装教程

WebDriver 以本地化方式驱动浏览器,就像用户在本地或使用 Selenium 服务器的远程机器上所做的那样,这标志着浏览器自动化的飞跃。Selenium WebDriver 指的是语言绑定和各个浏览器控制代码的实现。这通常被称为 WebDriver。Selenium WebDriver 是 W3C 推荐标准。WebDriver 被设计成一个简单和简洁的编程接口。WebDriver 是一个简洁的面向对象 API。它能有效地驱动浏览器。本文绝大部分内容,都可以从以下官方文档中找到。

hubing_hust的专栏 5万+

FastApi教程

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网(WWW:World Wide Web )服务器与本地浏览器之间传输超文本的传送协议。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

小石潭记丶 1562

爬虫——网页蜘蛛

大数据下的数据筛取技术

码刀攻城 1240

【Flink】Flink提交任务到Yarn报错Unable to close file because the last blockBP enough number of replicas

当使用 HDFS 存储文件时,每个数据块会有多个副本分布在不同的节点上,以确保数据的可靠性和容错性。然而,由于某种原因,最后一个数据块 blk_1101776325_28036289 的副本数量不足,导致无法成功关闭文件。如果确定副本数量正确,并且问题仍然存在,可以尝试手动修复副本不足的情况。异常消息表明在关闭文件时出现问题,我的原因是hadoop上有个节点有问题,导致提交到那个节点的时候,无法传递包到相关的机器上。检查 HDFS 集群的状态,确保所有节点都正常工作,没有节点宕机或网络故障等问题。

九师兄 935

手把手教你学Simulink——基于Simulink的全双工无线通信仿真建模示例

目录手把手教你学Simulink——基于Simulink的全双工无线通信仿真建模示例一、背景介绍二、所需工具和环境三、步骤详解步骤1:创建Simulink模型步骤2:设计输入信号步骤3:添加调制模块步骤4:添加自干扰消除模块步骤5:添加AWGN信道步骤6:添加接收端处理步骤7:添加解调模块步骤8:计算误码率(BER)步骤9:添加显示模块步骤10:设置仿真参数步骤11:运行仿真并分析结果四、总结 全双工(Full-Duplex)无线通信技术允许在同一频段上同时进行数据的发送和接收,这与传统的半双工(Half-

MHD0815的博客 182

Python网络爬虫——介绍

遵守它是网络爬虫的 “基本礼仪”,不然可能触发网站反爬,甚至涉及法律风险。是网站 “对外声明的爬取规则”,放在网站根目录(比如访问。就能看豆瓣的规则 ),作用是。

2501_91237346的博客 419

ModuleNotFoundError: No module named‘langchain.schema.output parserlangchain.schema is not a package

电脑里现有的langchain库版本与import所需的不同,卸载原有langchain,重新下载最新的langchain。在步骤1后,若仍不可运行。在确保已重新下载新langchain后,重启python后,可正常运行。在版本号中填入所需的langchain版本号,可在requirements.txt查看。运行如下代码时,出现error。

weixin_45751925的博客 1713

Python小姿势 - 如何利用Python实现高效爬虫

《100天精通Python》专栏,最详细的Python入门到精通教程;理论篇基础知识讲解构建体系框架、实践篇Python黑科技学以致用。https://blog.youkuaiyun.com/weixin_39032019/category_12263598.html

独木不成林,单弦不成音。 2526

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

转载网络爬虫的相关文章

以下连接均为转载 Python3网络爬虫(一):利用urllib进行简单的网页抓取 Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果 Python3网络爬虫(三):urllib.error异常 Python3网络爬虫(四):使用User Agent和代理IP隐藏身份 Python3网络爬虫(五):Python3安装Scrapy Python3网络爬虫(六):Python3使用Cookie-模拟登陆获取妹子联系方式 Python3网络爬虫(七):使用Beautifu

qq_24587727的博客 274

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python partial_python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处

作为一个男人在最高光的时刻就是说出那句之后还不会被人打...虽然在现实生活中你无法这样但是在这里就让你体验一番那种呼风唤雨的感觉我们之前在爬取某些网站的时候使用到了一些 python 的请求库模拟浏览器的请求我们需要抓包啥的能不能不这样可不可以就写几行代码让它自己去打开浏览器自己去请求我们要爬取的网站自己去模拟我们的一些搜索等等反正就是老子躺着,让它自己动躺好让 selenium 满足你的要求怎么...

weixin_39690401的博客 133

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python爬虫09 | 上来,自己动 !这就是 selenium 的牛逼之处

作为一个男人 在最高光的时刻 就是说出那句 之后 还不会被人打 ... 虽然在现实生活中你无法这样 但是在这里 就让你体验一番 那种呼风唤雨的感觉 我们之前在爬取某些网站的时候 使用到了一些 python 的请求库 模拟浏览器的请求 我们需要抓包...

weixin_30247781的博客 369

【Selenium】解锁并发新姿势:ThreadPoolExecutor驱动Selenium高效爬虫实战

本文详细介绍了如何利用ThreadPoolExecutor实现Selenium爬虫的并发优化,通过线程池技术显著提升爬虫效率。文章包含线程池工作原理、浏览器实例管理策略、实战框架搭建及性能优化技巧,帮助开发者应对高并发爬取场景,实现9倍以上的性能提升。

weixin_42527654的博客 723

实战|Python轻松实现动态网页爬虫(附详细源码)

我一向注重理论与实践相结合,知其然也要知其所以然,才能以不变应万变。所谓的动态网页,是指跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。——来源百度百科动态网页具有减少工作量、内容更新快、可完成功能多等特点,被很多公司所采用,比如狗东、某宝、某瓣、某乎等等。

m0_59162248的博客 1万+

当Python爬虫遭遇HTTP 403错误:这7种破解姿势你一定要会!!!

不要用固定User-Agent!准备个UA池随机切换控制请求频率!建议每秒不超过3次请求及时处理异常!遇到403先暂停而不是继续硬刚尊重robots.txt!有些网站明确禁止爬虫就不要强行抓取最近帮朋友调试一个爬虫时,发现即使用上了所有方法还是403。最后发现是对方网站启用了TLS指纹验证(这种高级反爬就需要更复杂的对抗手段了)。所以网络爬虫本质上是场攻防战,需要持续学习新技术!(超级重要)最后提醒:技术无罪,但请遵守法律法规和网站的使用条款!爬取公开数据时也要注意不要对目标服务器造成过大压力~

kernelguru的博客 3588

Python爬虫基础教程(5)Python网络爬虫技术核心之身份识别:神秘身份大揭秘:Python爬虫的“伪装术”与反爬虫的攻防大战!

你以为爬虫只是简单抓数据?错!身份识别才是核心战场。本文深度剖析Python爬虫如何伪装身份突破反爬机制,从User-Agent策略到IP轮换、请求频率控制,附完整爬取豆瓣电影的实战代码。学会这些,你的爬虫不再是“铁憨憨”,而是“变形金刚”!

jxf_jxfcsdn的博客 942
上一篇: Python论做游戏辅助,Python输过谁?
下一篇: 我利用Python画了这十个图,收到了公司小姐姐20封情书!
Python编程_可乐
博客等级 码龄6年 917粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值