selenium是一款优秀的WEB自动化测试工具,所以现在采用selenium进行半自动化爬取数据,支持模拟登录淘宝和自动处理滑动验证码。
1、环境搭建:
脚本用java编写,选择idea iDE;
下载selenium用的jar包:
第一个就是
我是下载的mac版64位,最新的:selenium-java-4.0.0-alpha-1;
下载解压,把lib和jar 都放到 java的项目里,引用;
2、mac下如何安装浏览器驱动chromedriver,这个是驱动chrome浏览器的根本;
http://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/
找对应自己浏览器版本的 下载;
下载后放到 /usr/local/bin 中即可;
接下来就是编写程序了:
package com.wbh.auto.test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class seleniumTest { public static void main(String[] args) { System.out.println("Hello World!"); //System.setProperty("webdriver.chrome.driver","E:\webDriver\chromedriverV2.28.exe");//chromedriver服务地址 System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");//chromedriver服务地址 WebDriver driver =new ChromeDriver(); //新建一个WebDriver 的对象,但是new 的是FirefoxDriver的驱动 driver.get("http://www.baidu.com");//打开指定的网站 driver.findElement(By.id("kw")).sendKeys(new String[] {"hello"});//找到kw元素的id,然后输入hello driver.findElement(By.id("su")).click(); //点击按扭 try { /** * WebDriver自带了一个智能等待的方法。 dr.manage().timeouts().implicitlyWait(arg0, arg1); Arg0:等待的时间长度,int 类型 ; Arg1:等待时间的单位 TimeUnit.SECONDS 一般用秒作为单位。 */ driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); } /** * dr.quit()和dr.close()都可以退出浏览器,简单的说一下两者的区别:第一个close, * 如果打开了多个页面是关不干净的,它只关闭当前的一个页面。第二个quit, * 是退出了所有Webdriver所有的窗口,退的非常干净,所以推荐使用quit最为一个case退出的方法。 */ //driver.quit();//退出浏览器 } }
参考:https://www.cnblogs.com/sincoolvip/p/7451652.html
做这些的目的就是自动登录阿里妈妈:
下面是一些有用的摘要:
http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.61.197d35d98kzlZB&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=2018-06-01&endTime=2018-06-07
阿里妈妈登录框
https://login.taobao.com/member/login.jhtml?style=mini&from=alimama&redirectURL=http%3A%2F%2Flogin.taobao.com%2Fmember%2Ftaobaoke%2Flogin.htm%3Fis_login%3d1&full_redirect=true&disableQuickLogin=true
持久登录 https://www.cnblogs.com/doorsky/p/6749723.html
转链接
{"invalidKey":null,"ok":true,"data":{"clickUrl":"https://s.click.taobao.com/t?e=m%3D2%26s%3DhZstSV7w6I0cQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67l79jjKrhVDp18u9BjgaVz4Vn1p9butaQZi9zjCd71l4CRL4DOgBVTfYZeZaqDFzeUQhMBSCX8byskJweKuFSuJldlTk1aM6eDH2w74iWjamomfkDJRs%2BhU%3D&pvid=10_122.233.43.77_1118_1489238002348","couponLink":"","tkCommonRate":"15.00","taoToken":"¥qHcLY2AEMox¥","qrCodeUrl":"//gqrcode.alicdn.com/img?type=hv&text=https%3A%2F%2Fs.click.taobao.com%2Fm6yig9w%3Faf%3D3&h=300&w=300","type":"auction","couponShortLinkUrl":null,"shortLinkUrl":"https://s.click.taobao.com/m6yig9w"},"info":{"ok":true,"message":null}}
Excel 获取: http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.61.197d35d98kzlZB&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=2018-06-01&endTime=2018-06-07