JAVA爬虫实现自动登录淘宝

目的

想通过JAVA代码实现淘宝网的自动登录,通过获取设置的登录信息自动填写并提交。目前这个代码是小编测试过的,可以通过,后期不知道淘宝会不会有相应的封堵策略。

代码分享:

package util;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import java.io.File;
import java.util.Random;
public class TestCase2 {
  public static void main(String[] args)
  {
    System.setProperty("webdriver.firefox.bin","C:\\Program Files\\Mozilla Firefox\\firefox.exe");
    System.setProperty("webdriver.gecko.driver","C:\\Users\\18431\\IdeaProjects\\SeleniumDemo\\bin\\geckodriver.exe");
    FirefoxOptions options = new FirefoxOptions();
    FirefoxProfile profile = new FirefoxProfile(new File("C:\\Users\\18431\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\efzu2oem.default"));
    options.setProfile(profile);
    FirefoxDriver driver = new FirefoxDriver();
    driver.get("https://login.m.taobao.com/login.htm");
    //下面开始完全模拟正常人的操作,所以你会看到很多 sleep 操作
    WebElement usernameElement = driver.findElement(By.id("username"));
    //模拟用户点击用户名输入框
    usernameElement.click();
    String username = "18588260144";//你的手机号
    String password = "xxxxxxxxxxx";//你的密码
    Random rand = new Random();
    try {
      for (int i = 0; i <username.length() ; i++) {
        Thread.sleep(rand.nextInt(1000));//随机睡眠0-1秒
        //逐个输入单个字符
        usernameElement.sendKeys(""+username.charAt(i));
      }
      WebElement passwordElement = driver.findElement(By.id("password"));
      passwordElement.click();
      //输入完成用户名后,随机睡眠0-3秒
      Thread.sleep(rand.nextInt(3000));
      for (int i = 0; i <password.length() ; i++) {
        Thread.sleep(rand.nextInt(1000));
        passwordElement.sendKeys(""+password.charAt(i));
      }
      driver.findElement(By.id("btn-submit")).click();
    } catch (Exception e){
      e.printStackTrace();
    }
    try {
      Thread.sleep(300000);
    }catch (InterruptedException ie){
      ie.printStackTrace();
    }
    driver.quit();
  }
}

总结

可以看出来,万变不离其宗,再难的模拟登录都是可以完全模拟人类的操作习惯去实现反爬虫的,好吧,全都告诉你了,PHP 爬虫技术不打算继续写下去了,感觉还是用 PHP 适合它做的事情比较好,PHP 写的爬虫段位太低,还是python 和 java 更好些。

您可能感兴趣的文章:

  • 基于Vert.x和RxJava 2构建通用的爬虫框架的示例
  • 基于RxJava2实现的简单图片爬虫的方法
  • java网络爬虫连接超时解决实例代码
  • Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup
  • java实现一个简单的网络爬虫代码示例
  • 分享一个简单的java爬虫框架
  • JAVA超级简单的爬虫实例讲解
  • hadoop中实现java网络爬虫(示例讲解)
(0)

相关推荐

  • JAVA超级简单的爬虫实例讲解

    爬取整个页面的数据,并进行有效的提取信息,注释都有就不废话了: public class Reptile { public static void main(String[] args) { String url1=""; //传入你所要爬取的页面地址 InputStream is=null; //创建输入流用于读取流 BufferedReader br=null; //包装流,加快读取速度 StringBuffer html=new StringBuffer(); //用来保存读取页

  • 分享一个简单的java爬虫框架

    反复给网站编写不同的爬虫逻辑太麻烦了,自己实现了一个小框架 可以自定义的部分有: 请求方式(默认为Getuser-agent为谷歌浏览器的设置),可以通过实现RequestSet接口来自定义请求方式 储存方式(默认储存在f盘的html文件夹下),可以通过SaveUtil接口来自定义保存方式 需要保存的资源(默认为整个html页面) 筛选方式(默认所有url都符合要求),通过实现ResourseChooser接口来自定义需要保存的url和资源页面 实现的部分有: html页面的下载方式,通过Htt

  • 基于RxJava2实现的简单图片爬虫的方法

    今年十月份以来,跟朋友尝试导入一些图片到tensorflow来生成模型,这就需要大量的图片.刚开始我只写了一个简单的HttpClient程序来抓取图片,后来为了通用性索性写一个简单的图片爬虫程序.它可以用于抓取单张图片.多张图片.某个网页下的所有图片.多个网页下的所有图片. github地址:https://github.com/fengzhizi715/PicCrawler 这个爬虫使用了HttpClient.RxJava2以及Java 8的一些特性.它支持一些简单的定制,比如定制User-A

  • 基于Vert.x和RxJava 2构建通用的爬虫框架的示例

    最近由于业务需要监控一些数据,虽然市面上有很多优秀的爬虫框架,但是我仍然打算从头开始实现一套完整的爬虫框架. 在技术选型上,我没有选择Spring来搭建项目,而是选择了更轻量级的Vert.x.一方面感觉Spring太重了,而Vert.x是一个基于JVM.轻量级.高性能的框架.它基于事件和异步,依托于全异步Java服务器Netty,并扩展了很多其他特性. github地址:https://github.com/fengzhizi715/NetDiscovery 一. 爬虫框架的功能 爬虫框架包含爬

  • java实现一个简单的网络爬虫代码示例

    目前市面上流行的爬虫以python居多,简单了解之后,觉得简单的一些页面的爬虫,主要就是去解析目标页面(html).那么就在想,java有没有用户方便解析html页面呢?找到了一个jsoup包,一个非常方便解析html的工具呢. 使用方式也非常简单,引入jar包: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.

  • java网络爬虫连接超时解决实例代码

    本文研究的主要是java网络爬虫连接超时的问题,具体如下. 在网络爬虫中,经常会遇到如下报错.即连接超时.针对此问题,一般解决思路为:将连接时间.请求时间设置长一下.如果出现连接超时的情况,则在重新请求[设置重新请求次数]. Exception in thread "main" java.net.ConnectException: Connection timed out: connect 下面的代码便是使用httpclient解决连接超时的样例程序.直接上程序. package da

  • Java爬虫实现爬取京东上的手机搜索页面 HttpCliient+Jsoup

    1.需求及配置 需求:爬取京东手机搜索页面的信息,记录各手机的名称,价格,评论数等,形成一个可用于实际分析的数据表格. 使用Maven项目,log4j记录日志,日志仅导出到控制台. Maven依赖如下(pom.xml) <dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId>

  • hadoop中实现java网络爬虫(示例讲解)

    这一篇网络爬虫的实现就要联系上大数据了.在前两篇java实现网络爬虫和heritrix实现网络爬虫的基础上,这一次是要完整的做一次数据的收集.数据上传.数据分析.数据结果读取.数据可视化. 需要用到 Cygwin:一个在windows平台上运行的类UNIX模拟环境,直接网上搜索下载,并且安装: Hadoop:配置Hadoop环境,实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS,用来将收集的数据直接上传保存到HDFS,然后用MapReduce

  • JAVA爬虫实现自动登录淘宝

    目的 想通过JAVA代码实现淘宝网的自动登录,通过获取设置的登录信息自动填写并提交.目前这个代码是小编测试过的,可以通过,后期不知道淘宝会不会有相应的封堵策略. 代码分享: package util; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.fi

  • python实现二维码扫码自动登录淘宝

    一个小项目自动登录淘宝联盟抓取数据,由于之前在Github上看过类似用Python写的代码因此选择用Python来写,第一次用Python正式写程序还是被其"简单"所震撼,当然用的时候还是对其(2.7版)编码.迁移环境等问题所困扰,还好后来都解决了. 言归正传,抓取淘宝联盟的数据首先要解决的就是登录的问题,之前一般会碰到验证码的困扰,现在支持二维码扫码登录反而简单了,以下是登录的Python代码,主要是获取二维码打印,然后不断的检查扫码状态,如果过期了重新请求二维码(主要看逻辑,由于有

  • Python 自动登录淘宝并保存登录信息的方法

    前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之前的那个版本定为1.0,而今天修改的版本定为2.0.版本的迭代意味着功能的升级,那今天的2.0版本较之前的1.0版本有哪些改进呢?我们一起来看看! 1.0版本实现步骤 我们先来回顾一下模拟登录淘宝的步骤吧,我们还是先看看淘宝登录的详细时序图: 这是淘宝网登录的一个请求流程,而我们模拟登录也是根据这样的一个流程.但是在代码模拟登录的时候就不会分的这么细,我们根据封装的思想将整个登录流程封装在四

  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    在处理问题的之前,给大家个第一个锦囊! 你需要将chorme更新到最新版版本84,下载对应的chorme驱动 链接:http://chromedriver.storage.googleapis.com/index.html 注意 划重点!!一定要做这一步,因为我用的83的chorme他是不行滴,~~~~~~~ 问题 1.一周前我的滑块验证代码还是可以OK的,完全没问题!附代码 low一眼 url = "https://login.taobao.com/member/login.jhtml&quo

  • selenium跳过webdriver检测并模拟登录淘宝

    简介 模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了.因为你使用get/post方式进行爬取数据,会提示需要登录,而登录又是一大难题,需要滑动验证码验证.当你想使用IP代理池进行跳过检验时,发现登录时需要手机短信验证码验证,由此可以知道旧的全自动爬取数据对于大型网站比较困难了. selenium是一款优秀的WEB自动化测试工具,所以现在采用selenium进行半自动化爬取数据,支持模

  • 详解如何用Python模拟登录淘宝

    目录 一.淘宝登录流程 二.模拟登录实现 1.判断是否需要验证码 2.验证用户名密码 3.申请st码 4.使用st码登录 5.获取淘宝昵称 三.总结 1.代码结构 2.存在问题 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scrapy.pyppeteer.selenium等库来模拟登录,但是目前我们还没有讲到这些库,只讲了requests库,那我们今天就来使用requests库模拟登录淘宝! 讲模拟登录淘宝之前,我们来回顾一下之前用requests库模拟登录豆瓣和新浪微博的过程:这一类模拟

  • java web实现自动登录功能

    本文实例为大家分享了java web实现自动登录功能的具体代码,供大家参考,具体内容如下 主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名,如果有,则直接跳转至用户登录好的界面,如果没有,则重定向至登录界面,在服务器端创建该用户登录的cookie,响应时,将创建的cookie返回至浏览器端保存. 一.用户访问首页时检查cookie是否存在. package ahpudong.com; import java.io.IOException;

  • python使用sessions模拟登录淘宝的方式

    之前想爬取一些淘宝的数据,后来发现需要登录,找了很多的资料,有个使用request的sessions加上cookie来登录的,cookie的获取在登录后使用开发者工具可以找到.不过这个登录后获得的网页的代码是静态的,获取动态网页还得另寻他法,一般需要的数据可以在网页的源码中得到,但是你知道的,有些动态加载的就不是那么简单了,而且我发现这样获得的源码中,有些想要获取的数据的格式是经过改动的,比如我要某个商品的具体链接,发现并不能直接使用. 总体而言,这是一次失败的尝试,不过倒是了解到使用sessi

  • python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程

    实例如下所示: import requests import re,sys,os import json import threading import pprint class spider: def __init__(self,sid,name): self.id = sid self.headers = { "Accept":"text/html,application/xhtml+xml,application/xml;", "Accept-Enc

  • 使用Java servlet实现自动登录退出功能

    UserDao.java从数据库中查询用户名与密码 //登录 public User login(User user) throws SQLException { QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()); String sql = "select from user where username = ? and password = ?"; return qr.query(sql, new Be

随机推荐