首先我们就以CSDN博客的登录为例,这里的登陆账号和密码,读者可以使用自己的,只要将登录帐号和密码修改一下就可以登录并抓取网页数据下来了,首先我们利用eclipse创建一个java工程,主要是用来调用phantomjs,java工程目录如下截图:

接着以下就是我们在Test.java中的代码:

package com.xzz.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();//Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法
Process process = null;  
   String url = "https://passport.csdn.net/account/login?from=http://www.csdn.net";//要访问的网址
   try {  
    process = rt.exec("C:/Users/Administrator/Desktop/phantomjs-2.5.0-beta2-windows/phantomjs-2.5.0-beta2-windows/bin/phantomjs.exe " +"C:/Users/Administrator/Desktop/codesss.js "+url);//将命令行的数据输入到运行环境中并执行,其中的路径最好写成绝对路径,

InputStream in = process.getInputStream();  //这一部分就是通过java流的方式来获取到抓取下来的网页信息,
       InputStreamReader reader = new InputStreamReader(in, "UTF-8");  
       BufferedReader br = new BufferedReader(reader);
       StringBuffer sbf = new StringBuffer();  
       String tmp = "";  
       while((tmp = br.readLine())!=null){      
        sbf.append(tmp);      
        }  
       System.out.println(sbf.toString());
       } catch (IOException e) {  
        e.printStackTrace();  
        }  
   }
}

以上部分只是登陆网页的准备工作,接着我们要利用js来操作phtomjs这个无头浏览器,

首先我们进入到qq空间的登录网页页面,然后右键打开网页源代码,如下截图,然后找到username和password输入框:

然后开始编写登陆的js文件。如下代码所示:

system = require('system');//这里是获取java文件里的送到虚拟机中的命令行数据
var address = system.args[1];//从这里我们可以得到csdn登录页的url
var page = require('webpage').create();//创建一个page,可查看相关的文档了解
page.open(address,function(status){
if(status === 'success'){
var cookiesStr="";
        var cookies=page.cookies;
        for(var i in cookies){
            cookiesStr=cookiesStr+cookies[i].name+"="+cookies[i].value+";";         
        }
        console.log(cookiesStr);
page.evaluate(function() {
            $("#username")[0].value='***************';//这里填写帐号
            $("#password")[0].value='*******';//这里填写密码
            $(".logging").click();//登录按钮的动作
        });
console.log("........................");
var cookiesStra = "";
var cookiesc = page.cookies;
for(var j in cookiesc){
            cookiesStra=cookiesStra+cookiesc[j].name+"="+cookiesc[j].value+";";
        }
console.log(cookiesStra);
setTimeout('print_cookies()',10000);
}else{
console.log("error.....");
phantom.exit();
}
});

//当登陆成功后,跳转到想要取得页面,并把网页的数据抓下来
function print_cookies(){
    console.info(JSON.stringify(page.cookies, undefined, 4));
var page1 = require('webpage').create();
//phantom.addcookie
page1.open("http://blog.csdn.net/xiezuozhen",function(status){
if(status === 'success'){
console.log(page1.content);
var cookiesStrb="";
        var cookiesb=page1.cookies;
        for(var k in cookiesb){
            cookiesStrb=cookiesStrb+cookiesb[k].name+"="+cookiesb[k].value+";";         
        }
console.log(cookiesStrb);
page1.evaluate(function(){

});
phantom.exit()
}else{
console.log("error.....");
phantom.exit();
}
});
}

到此phantomjs模拟登录网页的操作基本完成,并且还可以抓取登陆后的网页的数据。如果需要对网页数据进行进一步的筛选操作,获取自己想要的信息,可以看以后更新的博客或者加本人qq:1925036827,可一起讨论相关的问题。相关的资源可以到QQ群:623962264中下载.

以下是抓取下来的网页的数据截图:

利用phantomjs模拟登录网站(帐号登陆)相关推荐

  1. 利用phantomjs模拟QQ自动登录

    之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写. 考 ...

  2. 真的能1个用户帐号登陆所有网站,问U盟?

    真的能1个用户帐号登陆所有网站,问U盟? "1个用户帐号登陆所有网站",这是笔者在U盟网站首页看到的醒目提示. 是真的能实现吗?如何实现的?好用吗?安全吗?...... 带着一连串 ...

  3. vsftp匿名访问目录_vsftp 使用匿名帐号登陆

    1.正常安装. 2.改配置文件:vi /etc/vsftpd/vsftpd.conf #允许匿名用户登录FTP anonymous_enable=YES #设置匿名用户的登录目录(如需要,需自己添加并 ...

  4. python模拟登录网站_Python爬虫之模拟登录wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  5. Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息

    Python 利用 cookie 模拟登录,爬取指定关键词的淘宝商品信息-Selenium 1. 本文目标 由于淘宝网站的不断更新,以前的爬取方法都无法重现,必须需要登录淘宝网站才可以进行搜索商品.所 ...

  6. python paste_利用Python模拟登录pastebin.com的实现方法

    任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 1.账号的自动登录 2.paste的 ...

  7. 【CURL】模拟登录网站并获取用户信息

    模拟登录网站并获取用户信息 前言 这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息. 前后端分离 本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接 ...

  8. 怎么可以查到AD里面长时间没有登录的帐号

    怎么可以查到AD里面长时间没有登录的帐号 因为以前许多原因,建立了一些帐号. 现在想清理一下,想将长时间没有用的帐号删除掉.请问可以用什么工具或者方法, 查到AD里面长时间没有登录的帐号呢?谢谢! 回 ...

  9. 微信python天天学_刚学Python一礼拜!我就能模拟登录微信公众号!我是天才吧!...

    最近迷上了用python写爬虫,一发不可收拾,下面我们来说一下如何实现模拟登录微信公众号平台. 故事起因,由于本人注册了一个公众号,想着如何通过脚本实现像部分用户发送消息呢? 如何实现一键上传材料呢? ...

最新文章

  1. 浅谈图片蒙版效果-webkit-mask
  2. 排序算法 之四 分类、时间/空间复杂度、如何选择
  3. 程序员欢呼:微软Bing开始支持搜索源码、可直接运行
  4. 二. 2d-2d 对极约束 估计相机位姿pose(R,t)
  5. python中的选择结构语句是语句_选择结构-if语句和if...else语句
  6. C mysql带参数存储过程_C# 调用Mysql 带参数存储过程
  7. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---41
  8. Linux进程管理四大‘名捕’
  9. laravel 效率与java_让你的Laravel 应用运行速度飞起来!(利用PHP OPcache)
  10. 一款局域网的聊天工具
  11. ArcGIS地理配准、影像校正步骤
  12. TOEFL wordlist 17
  13. openGL绘制矩形的顶点定义与矩形绘制
  14. ❤️UI自动化轻松解决微信手工群发消息的烦恼❤️
  15. 第二章 MATLAB数据与矩阵
  16. 网咖倒闭低价清机子?擦擦眼睛再做决定
  17. Kafka Broker
  18. js文件 本地 上传服务器地址,js 本地文件同步服务器地址
  19. 两年数模路,一点小感触…
  20. 推荐一款文件分享工具-文叔叔

热门文章

  1. 做电商的前期准备,新手一定要注意!
  2. r4be和服务器主板稳定性,【华硕X79评测】升级进化 华硕R4BE主板细节解析-中关村在线...
  3. 深度学习环境配置——(5)Pycharm使用Anaconda创建的pytorch虚拟环境
  4. CSS---三大定位方式(相对,绝对,固定定位)
  5. 在家做视频二次剪辑,一个短视频播放量40多万,收益有800多
  6. Java内存区域与OutOfMemoryError
  7. 2022年湖南省公共营养师(基础知识)练习题及答案
  8. 知乎引流回答问题需要注意什么?详细的方案一路指引
  9. Windows x64为动态代码添加unwind信息
  10. ubuntu 18.04 crontab 设置自动开关机