Python爬虫笔记【一】模拟用户访问之webdriver用户登入——第三次(8)
经过post方法之后,因为有动态的value值所以再此回到用webdriver的解决上,但是在下载图片上会打开新打开一个链接,导致与网页图片不同即验证码同步问题,没办法只能想了一个笨法子,网页截图,唉!因为只是验证码问题所以只上获取验证码的代码了,其他的在第六节都有把下载的代码换一下就行。
from PIL import Image
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys # 截全屏
def get_snap(driver):
driver..maximize_window();
time.sleep(3) driver.get_screenshot_as_file('./full_snap.png')
page_snap_obj = Image.open('full_snap.png')
return page_snap_obj def get_image(driver):
driver.find_element_by_id('frm_login').send_keys(Keys.DOWN)
# 如果爬取的网页有iframe,则切换到xpath对应的iframe,没有的话,下面一行代码可以注释
driver.switch_to.frame(driver.find_element_by_id("frm_login"))
driver.find_element_by_id("txt_sdertfgsadscxcadsads").click()
# 这里是点击输入验证码框才会显示验证码
time.sleep(2)
img = driver.find_element_by_id('imgCode')
loca= img.location
loca['x'] = 190
loca['y'] =190
print(loca)
size = img.size
# 这里根据自己爬取的网站进行调整,如果没有iframe的,不需要手工调整
left = loca['x'] + 10
top = loca['y'] + 107
right = left + size['width']
bottom = top + size['height']
page_snap_obj = get_snap(driver)
page_snap_obj.show()
image_obj = page_snap_obj.crop((left, top, right, bottom))
image_obj.show()
# 得到的就是验证码
return image_obj if __name__ == "__main__":
driver = webdriver.Firefox()
url = "http:xxxxxxxxxxxxxxxxxxx" # 抓取验证码的网站
driver.get(url)
get_image(driver)
当时在截全屏时因为iframe问题全屏的截取有些问题,在网上搜时,发现一个与我爬取网站id相同的老哥的代码,所以就借过来用了。
本文链接:https://blog.csdn.net/qq_34525938/article/details/88945788
————————————————
版权声明:本文为CSDN博主「wap2017」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34525938/article/details/88945788
Python爬虫笔记【一】模拟用户访问之webdriver用户登入——第三次(8)的更多相关文章
- python爬虫笔记之用cookie访问需要登录的网站
目标:用cookie访问一个需要登录的网站 如图,直接访问会跳转到登录页面,提示登录. 运行结果: 直接在浏览器上输入该url,网站立马跳转到登录页面. 方法: 1.先手动登录,通过抓包获取coo ...
- python爬虫笔记Day01
python爬虫笔记第一天 Requests库的安装 先在cmd中pip install requests 再打开Python IDM写入import requests 完成requests在.py文 ...
- [Python爬虫笔记][随意找个博客入门(一)]
[Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...
- Python爬虫笔记一(来自MOOC) Requests库入门
Python爬虫笔记一(来自MOOC) 提示:本文是我在中国大学MOOC里面自学以及敲的一部分代码,纯一个记录文,如果刚好有人也是看的这个课,方便搬运在自己电脑上运行. 课程为:北京理工大学-嵩天-P ...
- Python爬虫笔记【一】模拟用户访问之设置请求头 (1)
学习的课本为<python网络数据采集>,大部分代码来此此书. 网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行.所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人 ...
- Python爬虫笔记【一】模拟用户访问之提交表单登入—第二次(7)
在第一次登入时遇到这个问题,页面验证码与下载下来需要识别的验证码不同的问题,从网上查寻说是叫验证码同步问题.发现是用cookie解决的,那次cookie介绍到通过cookie就可以实现时间戳同步问题, ...
- Python爬虫笔记【一】模拟用户访问之表单处理(3)
学习的课本为<python网络数据采集>,大部分代码来此此书. 大多数网页表单都是由一些HTML 字段.一个提交按钮.一个在表单处理完之后跳转的“执行结果”(表单属性action 的值)页 ...
- Python爬虫笔记【一】模拟用户访问之Tesseract-ocr验证码训练(5)
验证码处理之后就需要对处理的验证码进行识别训练,这里用Tesseract-ocr工具进行识别,用jTessBoxeditor进行训练生成模板. 一,对图片进行处理 利用上一篇代码对图片进行降噪处理,得 ...
- Python爬虫笔记(一):爬虫基本入门
最近在做一个项目,这个项目需要使用网络爬虫从特定网站上爬取数据,于是乎,我打算写一个爬虫系列的文章,与大家分享如何编写一个爬虫.这是这个项目的第一篇文章,这次就简单介绍一下Python爬虫,后面根据项 ...
随机推荐
- PAT甲级——A1113 Integer Set Partition
Given a set of N (>) positive integers, you are supposed to partition them into two disjoint sets ...
- pycharm新建ini文件或创建ini文件失败
1.pycharm创建ini格式的文件,没有对应的 ini 文件类型-------需要更新 Ini 2.setting–>marketplace 搜索 Ini ,然后进行安装,重启pycharm ...
- springAop的使用
AspectJ使用org.aspectj.lang.JoinPoint接口表示目标类连接点对象,如果是环绕增强时,使用org.aspectj.lang.ProceedingJoinPoint表示连接点 ...
- webpack英文文档
https://github.com/webpack/docs/wiki/contents
- Jsp Layout 布局页
本文章仅用于知识记录 /WEB-INF/tags/layout.tag <%@ tag language="java" pageEncoding="UTF-8&qu ...
- 分享一个现代的,免费的,简单而有效的编辑器Vis
Vis是一个免费的开源,类似Vi的代码编辑器,它扩展了vi的模态编辑,内置支持使用相同编辑器的基于结构正则表达式的命令语言实现的多个游标/选择.并将其与基于sam结构正则表达式的命令语言相结合. Vi ...
- js 类数组转化数组
一.常见类数组集合 (1).arguements function fn(){ var arr = [].slice.call(arguements,0); } (2).HTMLCollection ...
- VS2010-MFC(MFC应用程序框架分析)
转自:http://www.jizhuomi.com/software/145.html 一.SDK应用程序与MFC应用程序运行过程的对比 程序运行都要有入口函数,在之前的C++教程中都是main函数 ...
- iOS之CALayer属性简介
/* CoreAnimation - CALayer.h Copyright (c) 2006-2017, Apple Inc. All rights reserved. */ #import < ...
- Django的日常-路由层
目录 Django的日常-2 路由层 有名分组和无名分组 反向解析 路由的分发 Django的日常-2 路由层 我们之前已经接触过路由层,只是我们可能不知道他叫这个名字,实际上在Django里面路由层 ...