爬虫进阶-反爬破解5(selenium的优势和点击操作+chrome的远程调试能力+通过Chrome隔离实现一台电脑登陆多个账号)

目录

一、selenium的优势和点击操作

二、chrome的远程调试能力

三、通过Chrome隔离实现一台电脑登陆多个账号


一、selenium的优势和点击操作

1.环境搭建

工具:Chrome浏览器+chromedriver+selenium

win用户:chromedriver.exe放在python.exe旁边

MacOS用户:驱动路径是/user/local/bin/chromedriver

Linux大佬自行安装

2.Selenium优势

Selenium直接操作浏览器,不需要分析请求和加密数据

程序可以读取网页源码,分析并提取内容

程序可以直接和网页元素进行交互,例如点击

from selenium import webdriver
from time import sleepurl = 'http://shanzhi.spbeen.com/'
cb = webdriver.Chrome()
cb.get(url)
word_search_input = cb.find_element_by_xpath('.//input[@name="word"]')
word_search_input.send_keys("开发")
sleep(2)
search_button = cb.find_element_by_xpath('.//form[@action="/search/"]/button')
search_button.click() 
sleep(3)
num = 1
while num <= 5:next_element  = cb.find_element_by_xpath('.//div[@class="col-4"]/a[1]')next_element.click()sleep(3)num += 1
sleep(5)
cb.quit()

3.总结:

使用selenium,可以降低开发难度,提高开发效率

selenium可以直接操作页面元素,例如点击

selenium会降低程序运行速度,因为会主动加载更多的内容

二、chrome的远程调试能力

命令参数:--remote-debugging-port=9221

1.selenium端口调试的优势:

直接启动的浏览器,无selenium的特征,更安全

浏览器和selenium程序独立存在,不干扰

selenium依然可以控制chrome,程序上没有任何的修改

2.实践操作:selenium远程调试

Chrome开启远程调试端口

(1)windows用户

新建一个Chrome的快捷方式,然后鼠标右键,打开属性

(2)Mac (3)Linux

书写代码:

from selenium import webdriveroptions = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress","127.0.0.1:9221")
cb = webdriver.Chrome(options=options)print(cb.title)cb.get("https://www.zhihu.com")print(cb.title)cb.quit()

总结:

开启Chrome的远程调试端口,独立运行更自由

Selenium代码启动后,直接接管Chrome,操作没区别

注意Chrome网页环境参数问题,操作前先处理环境

三、通过Chrome隔离实现一台电脑登陆多个账号

1.启动参数介绍

--remote-debugging-port=9221

--user-data-dir=='C:/path_to/data_dir'

--headless

--window-size=1336,768

--disable-infobars

--incognito 无痕模式

2.正常模式和无痕模式

正常模式,数据正常保存并可以二次读取

无痕模式也会将数据存储在本地,不会二次加载

Selenium可以手动指定数据存储目录,用于多账号的数据存储

3.实践操作:Chrome数据存储隔离操作

from selenium import webdriver
from time import sleep
import ospath = '/Users/buladou/chrome_temp_dir'user = [['demo123','demo123'],['demo1234','demo1234'],['test123','test123'],['test1234','test1234']
]for user in users:options = webdriver.ChromeOptions()user_path = os.path.join(path, user[0])if not os.path.exists(user_path):os.makedirs(user_path)if 'demo' in user[0]:options.add_argument("--user-data-dir={}".format(user_path))else:options.add_argument("--incognito")options.add_argument("--user-data-dir={}".format(user_path))cb = webdriver.Chrome(options=options)cb.get('http://shanzhi.spbeen.com/login/')username = cb.find_element_by_xpath('.//input[@name="username"]')username.send_keys(user[0])password =cb.find_element_by_xpath('.//input[@id="MemberPassword"]')password.send_keys(user[1])
sleep(60*60)

总结:

需要隐私操作,使用无痕模式启动浏览器,更保险

指定目录启动selenium,数据可以进行二次加载,读取记录

启动系统浏览器,有一个默认的存储地址,而且是固定的

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

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

相关文章

文件上传漏洞

任意文件上传 1. 概述 文件上传是Web 应用必备功能之一&#xff0c;如&#xff0c;头像上传&#xff0c;附件分享等。如果服务器配置不当或者没有进行足够的过滤&#xff0c;Web 用户就可以上传任意文件&#xff0c;包括恶意脚本文件&#xff0c;exe 程序等等&#xff0c;这就…

MySQL 连接出现 Authentication plugin ‘caching_sha2_password‘ cannot be loaded

在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin caching_sha2_password cannot be loaded 出错 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法&#xff1a;把my…

祝贺埃文科技入选河南省工业企业数据安全技术支撑单位

近日&#xff0c;河南省工业信息安全产业发展联盟公布了河南省工业信息安全应急服务支撑单位和河南省工业企业数据安全技术支撑单位遴选结果,最终评选出19家单位作为第一届河南省工业信息安全应急服务支撑单位和河南省工业企业数据安全技术支撑单位。 埃文科技凭借自身技术优势…

Redis集群服务器

集群简介 试想有一家餐厅&#xff0c;如果顾客人数较少&#xff0c;那么餐厅只需要一个服务员即可&#xff0c;如图1。但是&#xff0c;当顾客人数非常多时&#xff0c;一个服务员是绝对不够的&#xff0c;如图2。此时&#xff0c;餐厅需要雇用更多的服务员来解决大量访问&…

vue-tour新手指导,点击按钮,进行提示,再次点击按钮,提示隐藏,点击下一步,弹框显示

先看效果图 main.js中引入vue-tour import VueTour from vue-tour require(vue-tour/dist/vue-tour.css) Vue.use(VueTour)建一个登录页面 点击导航助手按钮&#xff0c;开始提示 <el-button type"primary" plain click"startTour">导航助…

信息技术 安全技术 信息安全管理测量

声明 本文是学习信息技术 安全技术 信息安全管理 测量. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 为了评估按照GB/T 22080-2008规定实施的信息安全管理体系&#xff08;Information Security Management System&#xff0c;简称ISMS&#…

阿里巴巴API接口解析,实现按关键字搜索商品

要解析阿里巴巴API接口并实现按关键字搜索商品&#xff0c;你需要进行以下步骤&#xff1a; 了解阿里巴巴API接口文档&#xff1a;访问阿里巴巴开放平台&#xff0c;找到API文档&#xff0c;了解阿里巴巴提供的API接口以及相关的参数、返回值等信息。注册开发者账号&#xff1…

python3 修改nacos的yaml配置

一、安装nacos库 pip install nacos-sdk-python 二、代码如下 import nacos import yaml# 连接地址 NACOS_SERVER_ADDRESSES "192.168.xx.xx" NACOS_SERVER_PORT 替换为你的端口号&#xff0c;如8848# 命名空间 NACOS_NAMESPACE "your_namespace"# 账…

简单了解ICMP协议

目录 一、什么是ICMP协议&#xff1f; 二、ICMP如何工作&#xff1f; 三、ICMP报文格式 四、ICMP的作用 五、ICMP的典型应用 5.1 Ping程序 5.2 Tracert(Traceroute)路径追踪程序 一、什么是ICMP协议&#xff1f; ICMP因特网控制报文协议是一个差错报告机制&#xff0c;…

肖sir__设计测试用例方法之正交表08_(黑盒测试)

设计测试用例方法之正交 一、正交表定义 正交试验设计法&#xff0c;是从大量的试验点中挑选出适量的、有代表性的点&#xff0c;应用依据迦罗瓦理论导出的“正交表”&#xff0c;合理的安排试验的一种科学的试验设计方法。 二、 正交常用的术语 指标&#xff1a;通常把判断试验…

代码泄漏无感知?代码安全审计构筑企业核心资产安全防线

目录 一个不眠之夜 源代码托管&#xff1a;最容易被从内部攻破的堡垒 审计事件&#xff0c;构建源代码安全防护的“最后一道防线” 源代码托管审计事件三要素 源代码托管审计事件的价值 极狐GitLab 审计事件功能 极狐GitLab 审计事件功能特点 极狐GitLab 审计事件功能使…

【AIGC系列】Stable Diffusion 小白快速入门课程大纲

一、前言 本文是《Stable Diffusion 从入门到企业级应用实战》系列课程的前置学习引导部分&#xff0c;《Stable Diffusion新手完整学习地图课程》的课程大纲。该课程主要的培训对象是&#xff1a; 没有人工智能背景,想快速上手Stable Diffusion的初学者&#xff1b;想掌握St…