爬虫的selenium 框架

selenium 与 Httpsession 中的 s.html.render 特别相似 关键是在于他更加的具体,可以支持多种浏览器,并且包括截图等功能

需要下载

解决方案:
https://www.cnblogs.com/zhaijiahui/p/8954304.html
下载连接

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

from selenium import  webdriver
import  time
d1=webdriver.Chrome(r"C:\Users\xzq\Downloads\chromedriver_win32 (1)\chromedriver.exe") #浏览器内核的位置
d1.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d9bW79Rz&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F")
d1.find_element_by_id("J_Quick2Static").click()
time.sleep(3)
d1.find_element_by_id("TPL_username_1").send_keys("扯淡灬孩子02547915")
d1.find_element_by_id("TPL_password_1").send_keys("a13736784065")
d1.find_element_by_id("J_SubmitStatic").click()

#滑动验证的问题

button = d1.find_element_by_id(‘nc_1_n1z‘)# 找到“蓝色滑块”
action = webdriver.ActionChains(d1)# 实例化一个action对象
action.click_and_hold(button).perform()# perform()用来执行ActionChains中存储的行为
action.reset_actions()
action.move_by_offset(280, 0).perform()# 移动滑块
action.release()

解决验证码无法输入的问题

请求图片的url 每次请求的图片都一样
直接给request
如果每次都不一致
1.实例化session
2.使用session 请求页面,获取验证码地址
3.发送session请求验证码,使用打码识别
4.使用session发送post
使用selenium 遇到验证码:
selenium请求登陆页面,同时拿到验证码地址
获取登陆drive中的cookie,交给request处理识别
或者使用截图工具找出验证码 用打马识别

获取文本和属性

1.先定位到元素,然后调用.text 或者get_attributee
find_element 返回的是一个element 如果没有就会报错
find_elemants 返回是的一个列表,没有就是空列表

解决find_element 失败的方法

可能页面中有iframe,frame
需要先调用
d1.switch_to.frame(“framae_name”)
然后再取输入内容

把浏览器内核的cookie交给session中的cookie操作

明明有这个元素未获得

原因:还没加载完就获取

使用ORC识别验证码

1.安装PIL (python3 中没有直接的PIL 版本供应下载 可以先使用 Pillow)
2.导入from PIL import Image

import  pytesseract
from  PIL import  Image
img=Image.open("0014076720724832de067ce843d41c58f2af067d1e0720f000[1].jpg")
print(pytesseract.image_to_string(img))

如果报错请参考(原因是因为没有安装ORC)下载后在pytesseract的tesseract_cmd下添加tesserac.exet路径即可
无法加载中文
添加系统变量

详细https://blog.csdn.net/wang_hugh/article/details/80760940
下载方法https://blog.csdn.net/ocean35/article/details/82942382

原文地址:https://www.cnblogs.com/xzqpy/p/11332918.html

时间: 2024-11-01 12:21:56

爬虫的selenium 框架的相关文章

python爬虫-什么时候选择selenium框架框架?

不知不觉已经从事Python编程开发5年了,Python刚开始其实不是很起眼,但是随着大数据越来越活,现在Python也越来越火了,但是目前我主要从事的Python工作还是以数据挖掘.数据爬虫技术深度为主. 下面把这些年个人在编程爬虫代码时用过的一些爬虫框架和爬虫经验给大家分享: 不同的网站选择不通的技术策略和不同的框架组合. ? ? (1)selenium框架: 我把这个框架取了一个名字叫:"无法阻挡爬虫蜘蛛侠",这个框架优点的个人觉得就是可以模拟浏览器,相当于您用程序调动浏览器让浏

selenium框架与chrome浏览器的不兼容问题

在一次偶然的情况下,在chrome上用selenium框架去抓取某个id为XX的页面元素,使用WebDriver的findElement().click()方法进行点击,原来在firefox浏览器运行得好好的程序报错了.编译器给报了InvocationTargetException,有点经验的coder都知道,这个异常范围太广了,并且最蛋疼的是不给出任何异常信息(StacktraceInformation为null)这时候就不得不用getCause方法来得到导致其出现的真正异常,并且得到异常信息

python爬虫之scrapy框架

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy 使用了 Twisted异步网络库来处理网络通讯.整体架构大致如下 Scrapy主要包括了以下组件: 引擎

使用分层的Selenium框架进行复杂 Web 应用的自动测试

Selenium概述 Selenium是一种Web应用的自动测试工具,通过模拟用户对Web页面的各种操作,可以精确重现软件测试人员编写的Test Cases步骤.Selenium包含三个工具:Selenium-IDE,Selenium-RC以及Selenium-Core.其中,Selenium-Core是驱动Selenium工作的核心部分,作为一个用JavaScript编写的测试引擎,它可以操作Web页面上的各种元素,诸如:点击按钮.输入文本框,以及断言Web页面上存在某些文本与Web元素等.

基于浏览器内核的被动式爬虫任务下发框架

基于浏览器内核的被动式爬虫任务下发框架 现有基于浏览器的客户端测试框架通过ChromeDriver这类组件来主动控制,但主动控制有缺点: 重新load下一个页面时,上一个页面可能仍有JS代码在执行,或者网络层的连接阻塞.UI线程阻塞什么的: 通过WebView接口注入执行的JS代码可能因为各种情况意外出错,出错的话无法获得通知 无法可靠地向浏览器查询,获得当前任务是否已经执行完成的信息 这里给出一个简单的基于修改chromium内核,进行被动控制的思路及流程如下: 浏览器启动时,通过一个'给定的

selenium框架简介

selenium框架是目前基于web自动化的开源自动化工具.它能提供一系列函数,自动化模拟浏览器的各式各样的操作. 1,支持多浏览器:firefox,chrome,IE,Safari等 2,支持多种脚本语言:PHP,python,java,c#,ruby等 3,支持多操作系统:linux,ios,android,windows 以下为selenium suite的结构简图: 1,selenium IDE.其实是firefox浏览器上的一个插件,支持通过界面进行录制,并将录制内容翻译成自动化测试脚

Requests爬虫和scrapy框架多线程爬虫

1.基于Requests和BeautifulSoup的单线程爬虫 1.1 BeautifulSoup用法总结 1. find,获取匹配的第一个标签 tag = soup.find('a') print(tag) tag = soup.find(name='a', attrs={'class': 'sister'}, recursive=True, text='Lacie') tag = soup.find(name='a', class_='sister', recursive=True, te

Python爬虫之selenium的使用(八)

Python爬虫之selenium的使用 一.简介 二.安装 三.使用 一.简介 Selenium 是自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试.Selenium 支持这些浏览器驱动.Selenium支持多种语言开发,比如 Python,Java,C,Ruby等等. 二.安装 1.安装selenium pip3 install seleniu

Python网络爬虫之Scrapy框架(CrawlSpider)

目录 Python网络爬虫之Scrapy框架(CrawlSpider) CrawlSpider使用 爬取糗事百科糗图板块的所有页码数据 Python网络爬虫之Scrapy框架(CrawlSpider) 提问:如果想要通过爬虫程序去爬取"糗百"全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基于CrawlSpider的自动爬取进行实现(更加简洁和高效). CrawlSpider使