selenium模块跳过用户名密码验证码输入,加载浏览器标签和cookie,进行翻页爬虫多页动态加载的数据(js)
能解决登陆一次后,之后不需要二次登陆的动态加载数据,网页保存的cookie和标签,加入到selenium自动化测试浏览器中
1 from selenium import webdriver
2 import re
3 from time import sleep
4
5 def willbill():
6 '''点击翻页,获取下一页数据,进行正则匹配'''
7 driver.find_element_by_xpath('//*[@id="upPage"]/li[5]/a').click()
8 sleep(3)
9 data = driver.page_source
10 results_list = 'class="limingcentUrlpic">(.*?)</a> '
11 res_list = re.findall(results_list, data, re.S)
12 all_willbill.append(res_list)
13 return all_willbill
14
15 #将Chrome浏览器中的标签和cookie都加载上进行爬虫,
16 all_willbill=[]
17 profile_directory = r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'
18 option = webdriver.ChromeOptions()
19 option.add_argument(profile_directory)
20 driver = webdriver.Chrome(options=option)
21 url = 'https://www.dianxiaomi.com/order/index.htm'
22 driver.get(url)
23 sleep(3)
24 driver.find_element_by_xpath('//*[@id="m105"]').click()
25 sleep(2)
26 driver.find_element_by_xpath('//*[@id="onlyShowRemove"]').click()
27 sleep(3)
28 data = driver.page_source
29 results_list= 'class="limingcentUrlpic">(.*?)</a> '
30
31 res_list = re.findall(results_list,data,re.S)
32 print(res_list)
33 all_willbill.append(res_list)
34 for i in range(108):
35 willbill()
36 print(all_willbill)
37 #保存所有的订单号到Excel表格
38 def save_excel():
39 import pandas as pd
40 import os
41 cwd = os.getcwd()
42 Hearder =['订单号']
43 #二维数组列表转成一维数组列表
44 list_all_will = []
45 for i in range(len(all_willbill)):
46 for res in all_willbill[i]:
47 list_all_will.append(res)
48 test = pd.DataFrame(columns=Hearder,data=list_all_will)
49 test.to_excel(cwd+'\\'+'all_willbill.xlsx')
50 print('保存订单号成功!')
51 save_excel()
selenium模块跳过用户名密码验证码输入,加载浏览器标签和cookie,进行翻页爬虫多页动态加载的数据(js)的更多相关文章
- 爬虫:获取动态加载数据(selenium)(某站)
如果网站数据是动态加载,需要不停往下拉进度条才能显示数据,用selenium模拟浏览器下拉进度条可以实现动态数据的抓取. 本文希望找到某乎某话题下讨论较多的问题,以此再寻找每一问题涉及的话题关键词(侵 ...
- Python输错4次用户名密码需要输入验证码
time = 0 login_success = False USER_NAME = "alex" PWD = "alex123" CHECK_CODE = & ...
- Python使用selenium实现网页用户名 密码 验证码自动登录功能
一.安装selenium 二.下载谷歌浏览器驱动 1.去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe( ...
- svn重新定位或checkout,提示输入用户名密码,输入后报错
在MyEclipse中,source——>clean up.然后重新定位或checkout
- git 保存用户名密码
打开本地的.git/config 加入 [credential] helper = store 保存,第一次需要输入用户名密码,输入一次密码后第二次就会记住密码了不会再提示输入用户名及密码
- 验证码的设计与记住我存储用户名密码cookie的技术及单选按钮选择登录人身份的实现
login.jsp页面 <head> <script type="text/javascript" src="js/captcha.js"&g ...
- javaweb从mysql中获取数据验证用户名密码成功跳转,失败重新验证
要求:validate.jsp页面中获取请求参数(request.getparameter(“name属性的值”)),注意中文参数获取之前要设置请求编码(request.setCharaterEnco ...
- nginx配置访问密码,让用户输入用户名密码才能访问
如果我们在 nginx 下搭建了一些站点,但是由于站点内容或者流量的关系,我们并不想让所有人都能正常访问,那么我们可以设置访问认证.只有让用户输入正确的用户名和密码才能正常访问.效果如下: 在 ngi ...
- 04 . Go+Vue开发一个线上外卖应用(用户名密码和图形验证码)
图形化验证码生成和验证 功能介绍 在使用用户名和密码登录功能时,需要填写验证码,验证码是以图形化的方式进行获取和展示的. 验证码使用原理 验证码的使用流程和原理为:在服务器端负责生成图形化验证码,并以 ...
随机推荐
- zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?
一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...
- 构造器(constructor)是否可被重写(override)?
构造器不能被继承,因此不能被重写,但可以被重载.
- 为什么要使用 rabbitmq?
1.在分布式系统下具备异步,削峰,负载均衡等一系列高级功能; 2.拥有持久化的机制,进程消息,队列中的信息也可以保存下来. 3.实现消费者和生产者之间的解耦. 4.对于高并发场景下,利用消息队列可以使 ...
- 什么是 AQS ?
AQS 是 AbustactQueuedSynchronizer 的简称,它是一个 Java 提高的底层同步工具类,用一个 int 类型的变量表示同步状态,并提供了一系列的 CAS 操作来管理这个同步 ...
- Postgres数据库知识点
1.批量插入: test_list = []for i in range(100): test_list.append(models.Testmodel(name=i, message="{ ...
- 本地连接MySQL云服务器步骤与解决方案
云服务器:aliyun MySQL 版本:mysql8 第一步首先,检查云服务器的 网络与安全 -> 安全组 是否开放了(MySQL)3306端口 第二步,登陆云服务器上的MySQL,检查需要远 ...
- springboot项目如何添加热部署
环境jdk1.8.maven3.6.使用工具为idea 1.在pom.xml文件中添加依赖 <dependency> <groupId>org.springframework. ...
- jsp技术之JSLT技术<c:if text="">判断
JSLT的c:if标签 作用:用来进行判断的 语法: <c:if test="判断条件,使用EL表达式进行判断"> 如果判断为true,这里的内容会生效:如果为fals ...
- 《CSS世界》笔记二:盒模型四大家族
上一篇:<CSS世界>笔记一:流/元素/尺寸下一篇:<CSS世界>笔记三:内联元素与对齐 写在前面 在读<CSS世界>第四章之前,粗浅的认为盒模型无非是margin ...
- zTree -- jQuery 树插件 使用方法与例子
简介 zTree 是一个依靠 jQuery 实现的多功能 "树插件". 网址:http://www.ztree.me/v3/main.php#_zTreeInfo 上面的网址里有z ...