python可视化爬虫实现“京东试用”批量申请
介绍:

环境:chromedriver 2.41.578700+ selenuim3.14.0
过程:
1.打开京东主页
2.登录京东
3.打开京东试用页面
4.获取商品列表
5.自动申请试用(该商品已经申请过则跳过)
6.实现循环
程序详单:
#!/usr/bin/env python
# coding=utf-8
from selenium import webdriver
import os
import time
#-----------------登录京东--------------------------------
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.jd.com/')
driver.find_element_by_id("ttbar-login").click()#点击登录京东
time.sleep(1)
driver.find_element_by_xpath("//a[@clstag='pageclick|keycount|login_pc_201804112|10']").click()#点击通过账号登录
time.sleep(1)
driver.find_element_by_id('loginname').send_keys("############")#输入账户
driver.find_element_by_id('nloginpwd').send_keys("############")#输入密码
time.sleep(10)#这10秒钟内可以手动输入验证码(如果需要的话)
driver.find_element_by_id('loginsubmit').click()#点击登录
#--------------------------------------------------------- #------------------------打开京东试用-----------------------
time.sleep(2)
driver.get('https://try.jd.com/activity/getActivityList')
time.sleep(3)
for j in range(274):#遍历274页商品,可根据实际情况调整
items = driver.find_elements_by_class_name("link")#获取当前页面所有商品列表
length = len(items)
handle = driver.current_window_handle#获取当前页面标识
for i in range(length):#遍历每件商品
item = items[i]
item.click()#点击商品,进入申请页面
time.sleep(1)
#--------从商品列表页切换页面至申请页面---------------
handles = driver.window_handles
for newhandle in handles:
if newhandle!=handle:
driver.switch_to_window(newhandle)
time.sleep(2)
#-------------------------------------------------
try:#如果商品未申请,显示“申请试用”,try正常执行
driver.find_element_by_link_text('申请试用').click()
time.sleep(2)
driver.find_element_by_link_text('关注并申请').click()
time.sleep(1)
handle = driver.current_window_handle#获取当前页面标识
#--------从申请页面切换页面至商品列表页---------------
for newhandle in handles:
if newhandle!=handle:
driver.close()
driver.switch_to_window(newhandle)
except:#如果已经申请过,则无法找到“申请试用”,try无法正常执行,执行except
handle = driver.current_window_handle
for newhandle in handles:
if newhandle!=handle:
driver.close()
driver.switch_to_window(newhandle)
continue
driver.find_element_by_class_name('ui-pager-next').click()#点击下一页
第一天就中奖了:


python可视化爬虫实现“京东试用”批量申请的更多相关文章
- 利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化
前几天给大家分享了如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,感兴趣的小伙伴可以点击链接进行查看.今天小编给大家介绍如何利用Python网络爬虫抓取微信好友的省位和城市,并且将 ...
- Python之爬虫-京东商品
Python之爬虫-京东商品 #!/usr/bin/env python # coding: utf-8 from selenium import webdriver from selenium.we ...
- 利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- Python 3爬虫、数据清洗与可视化实战PDF高清完整版免费下载|百度云盘
百度云盘:Python 3爬虫.数据清洗与可视化实战PDF高清完整版免费下载 提取码: 内容简介 <Python 3爬虫.数据清洗与可视化实战>是一本通过实战教初学者学习采集数据.清洗和组 ...
- Python网络爬虫笔记(五):下载、分析京东P20销售数据
(一) 分析网页 下载下面这个链接的销售数据 https://item.jd.com/6733026.html#comment 1. 翻页的时候,谷歌F12的Network页签可以看到下面 ...
- python多线程爬虫+批量下载斗图啦图片项目(关注、持续更新)
python多线程爬虫项目() 爬取目标:斗图啦(起始url:http://www.doutula.com/photo/list/?page=1) 爬取内容:斗图啦全网图片 使用工具:requests ...
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)
原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...
- 【Python】Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
本文转载自:https://www.cnblogs.com/colipso/p/4284510.html 好文 mark http://www.52nlp.cn/python-%E7%BD%91%E9 ...
- [Python] 网络爬虫和正则表达式学习总结
以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...
随机推荐
- preg_match
$baseUrl = request()->baseUrl(); if (!preg_match('/admin.php/',$baseUrl)) { $this->redirect('/ ...
- 代码中特殊的注释技术 -- TODO、FIXME和XXX的用处
借鉴地址:https://www.cnblogs.com/pengyingh/articles/2445826.html 在阅读一些代码时,经常会遇到诸如:TODO.FIXME和XXX的单词,它们是有 ...
- Java之美[从菜鸟到高手演变]系列之博文阅读导航
随着博文越来越多,为博客添加一个导航很有必要!本博客将相继开通Java.CloudFoundry.Linux.Ruby等专栏,都会设立目录,希望读者朋友们能更加方便的阅读! 在阅读的过程中有任何问题, ...
- Redis分布式锁实现简单秒杀功能
这版秒杀只是解决瞬间访问过高服务器压力过大,请求速度变慢,大大消耗服务器性能的问题. 主要就是在高并发秒杀的场景下,很多人访问时并没有拿到锁,所以直接跳过了.这样就处理了多线程并发问题的同时也保证了服 ...
- 『cs231n』神经网络组件
- bootstrap modal关闭滚动条自动会跳回最顶端问题记录
原因:使用了a标签当按钮触发modal关闭的时候就会自动跳回浏览器最顶端 解决方案: 不要使用a标签就行了
- 一篇来自网络的关于“enqueue”events的简短参考(转)
仅供自己和各位同学参考: Enqueue Type Description enq: AD - allocate AU Synchronizes accesses to a specific OSM ...
- JAVA并行程序基础
JAVA并行程序基础 一.有关线程你必须知道的事 进程与线程 在等待面向线程设计的计算机结构中,进程是线程的容器.我们都知道,程序是对于指令.数据及其组织形式的描述,而进程是程序的实体. 线程是轻量级 ...
- React Js 之JSX
React使用JSX作为模板替换JavaScript,它不是必须的,但是它是推荐使用.原因如下: 1.它比传统的JavaScript更快,因为编译代码的时候,JSX做了相应的优化 2.它是类型安全的, ...
- 微信小程序中的bindTap事件(微信小程序开发QQ群:604788754)
bindTap对应的绑定事件, 第一个:wx.navigateTo wx.navigateTo({ url:"../content/content" }) 第二个:wx.redir ...