使用HttpClient来模拟浏览器登录网站,然后可以进行操作,比如发布信息等 第一步:获取实际的post网址,(不考虑复杂情况下) 1.需要使用到firefox的httpfox插件,httpfox中clear一下,然后start开始捕获 2.切换回网页的登录页面,开始输入自己的账号密码登录,登录成功后切回httpfox中stop,查看最近的post方法中包含的Post Data数据,和此post方法的url网址, 3.这样就得到了模拟登录时需要Post的数据参数(Parameter)和值(Va…
第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其…
模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其他参数,cookie.url.表单内容等 yield Request()可以将一个新…
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等.所访问的这些页面有的仅 仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS.目前我们使用的浏览器处理这些情况都不会构 成问题.不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据:利用某些站点提供的页面来完成某种功能,例如说我们 想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好…
一.介绍 httpClient是Apache公司的一个子项目, 用来提高高效的.最新的.功能丰富的支持http协议的客户端编程工具包.完成可以模拟浏览器发起请求行为. 二.简单使用例子 : 模拟浏览器发起访问谷歌首页请求 1.pom.xml 配置 <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <ve…
package com.java.httpclient; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.ParseException; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; imp…
HttpClient 是 Apache Jakarta Common 下的子项目.能够用来提供高效的.最新的.功能丰富的支持 HTTP 协议的client编程工具包.而且它支持 HTTP 协议最新的版本号和建议.本文首先介绍 HTTPClient.然后依据作者实际工作经验给出了一些常见问题的解决方法. 下面列出的是 HttpClient 提供的基本的功能,要知道很多其它具体的功能能够參见 HttpClient 的主页. (1)实现了全部 HTTP 的方法(GET,POST,PUT,HEAD 等)…
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------…
在通过java采集网页数据时,我们常常会遇到这样的问题: 站点需要登陆才能访问 而这种网站,一般都会对请求进行账号密码的验证,验证的方式也有多种,需要具体分析. 今天分析其中的一种情况: 站点对登陆密码进行动态加密,作为Cookie响应给客户端,之后的请求需要携带加密后的密码进行访问 登陆成功的响应头如下图: 之后的请求头: 因为每次登陆生成一个新的加密密码,所以之前的密码会失效 所以,需要在每次采集之前,先模拟登陆获取响应的密码,再作为cookie继续请求,我们选择采用HttpClient模拟…
(六)控制浏览器操作 1.控制浏览器窗口大小 有时候我们希望能以某种浏览器尺寸找开,访问的页面在这种尺寸下运行.例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估:WebDriver 提供了 manage().window().setSize()方法来设置浏览器的大小. maximize() 设置浏览器最大化 setSize() 设置浏览器宽高 import org.openqa.selenium.Dimension; import org.openqa.s…
转自:http://resolute.javaeye.com/blog/491701 commons-httpclient是apache下的一个开源项目,提供了一个纯java实现的http客户端.使用它能够非常方便发送HTTP请求,接受HTTP应答,自己主动管理Cookie等等.  对于contact-list类库来说,须要使用的功能有,自己主动管理Cookie,设置HTTP头.发送HTTP请求,接受HTTP应答,转发HTTP重定向,还有输出HTTP请求/应答日志,以下对这些功能的实现进行解释:…
浏览器获取数据: 打开浏览器 ==> 输入网址 ==> 回车查询 ==> 返回结果 ==> 浏览器显示结果数据 HttpClient获取数据: 创建HttpClient ==> 创建请求方式 ==> 发送请求 ==> 响应结果 ==> 解析结果数据 0. 操作摘要 0.1 添加依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactI…
http://e.neusoft.edu.cn/nav_login 模拟浏览器登录该网站上方.登录server基于验证码.refer和cookie保护,此代码html档. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.uti…
在调用公司的某个接口时,直接通过浏览器配置代理服务器可以请求到如下数据: 请求url地址:http://wwwnei.xuebusi.com/rd-interface/getsales.jsp?cid=12007036 <Root> <Result>1</Result> <Message></Message> <SalesLevel> <![CDATA[KU6]]> </SalesLevel> <Bran…
scrapy模拟登录 关注公众号"轻松学编程"了解更多. 注意:模拟登陆时,必须保证settings.py里的COOKIES_ENABLED(Cookies中间件) 处于开启状态 COOKIES_ENABLED = True或# COOKIES_ENABLED = False 策略一:直接POST数据(比如需要登陆的账户信息) 只要是需要提供post数据的,就可以用这种方法.下面示例里post的数据是账户密码: 可以使用yield scrapy.FormRequest(url, for…
写在前面: 老大让我写个脚本自动给他写dms有一段时间了,说实话当时不知道老大指的这个脚本是什么?毕竟是做web的,难道是写个数据库sql语句脚本吗?也就放在了一边.巧了,最近一个朋友说他之前写了个程式,我就问了一下.哇,这不正是我想要的!他是做了一个可以自动登录网站,然后自动填写日报的程式.看了之后感觉很棒,于是请教了一下. 朋友的程式是用的c#做的,然后内嵌了一个浏览器控件webbrowser.一下子恍然大悟,还可以这么玩.平时工作也没有接触到浏览器控件,于是赶紧去搜索java的浏览器控件.…
如何用Java代码模拟一些如百度.QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作,而这两种方式恰好在Java有开源实现,在这里介绍一个工具包,它是家喻户晓的HttpClient. HttpClient 是 Apache Jakarta Common 下的子项目,至于它是干什么用的呢?简单来说就是:它像浏览器一样支持HTTP协议.既然支持HTTP协议,那意味着浏览器能发送的,它也能发送.我想大家都知道登陆的代码流程,大部分无非就是浏览器端以POST方式提交一个form表单,服…
前言 并不是所有的网站都能够敞开心扉让你看个透彻,它们总要给你出些难题让你觉得有些东西是来之不易的,往往,这也更加激发你的激情和斗志! 从<为了媳妇的一张号,我与百度医生杠上了>里就有网友提出可以通过获取cookie的方式来登录,不需要借助selenium这样的模拟浏览器操作了,到后来在公众号里一号友说豆瓣如何实现登录,以及近期园友都有提到想获取更多的网站数据是需要登录的--登录,一直是爬虫界躲不了也绕不开的话题. 之前已经试过通过启动浏览器,模拟人工操作填写用户名和密码并点击登录来完成登录.…
目前在公司做一款平台化的产品,我主要负责PC端上的开发,在产品推荐过程中为了节省开发时间很多功能模块没来得及做原生,用CEF嵌入了很多带功能web页面,与客户端进行交互从而实现功能. 在二期开发中,产品需求说明书中需要把登录功能放在客户端来做,这当中涉及到一个问题客户端做登入登出很简单,但是很难通知到web平台登入登出. 我的想法是通过动态get/set浏览器cookies+refresh浏览器来实现平台登录. web端登录本身是相同URL在不同环境下(cookies/session两种)有不通…
//如果网页源码中有些内容是js渲染过来的,那你通过HttpClient直接取肯定取不到,但是这些数据一般都是通过异步请求传过来的(一般都是通过ajax的get或者post方式).那么你可以通过火狐浏览器的firebug或者chrome的审查元素,在网络选项中找到这个请求地址,再用HttpClient请求一次就可以拿到你想要的数据,但这些数据可能不是网页源码,一般都是json字符串.//朋友你好我现在是HtmlUnit运用者,我现在在项目爬去中遇见一个非常棘手的问题,就是分页数据怎样爬取,我现在…
协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必须遵从的一组约定; 计算机网络的本质在于传递数据,协议自然是针对于数据的结构格式以及传送规则的约定; 之前介绍过计算机网络的发展,其中TCP/IP协议栈共分为四层,两个程序端点数据的传输是U字形的 应用层 传输层 网络层 网络接口层 HTTP是工作在应用层的协议,所谓的工作在哪层,只不过是对底层的封…
浏览器应用服务器JavaPHPApache * 1,在HTTP的WEB应用中, 应用客户端和服务器之间的状态是通过Session来维持的, 而Session的本质就是Cookie, * 简单的讲,当浏览器向服务器发送Http请求的时候, HTTP服务器会产生一个SessionID,这个SessionID就唯一的标识了一个客户端到服务器的请求会话过程. * 就如同一次会议开始时,主办方给每位到场的嘉宾一个临时的编号胸牌一样, 可以通过这个编号记录每个嘉宾(客户端)的活动(请求状态). * 为了保持…
      实现核心:代码执行流程,根据抓包工具,模拟浏览器请求步骤走       private static void testLogin()       {             try             {                   // api.163-->>api.163.login-->>youdao.reg-->>youdao.crossdomain-->>api.163                           …
基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学习过程. 实际上是面试的时候被问到了  ̄△ ̄! 原理解析 1. 身份认证机制 在介绍扫码登录的原理之前,我们先聊一聊服务端的身份认证机制.以普通的 账号 + 密码 登录方式为例,服务端收到用户的登录请求后,首先验证账号.密码的合法性.如果验证通过,那么服务端会为用户分配一个 token,该 toke…
使用HttpClient 所需jar:commons-codec-1.9.jar,commons-httpclient-3.1.jar try { HttpClient client = new HttpClient(new HttpClientParams(),new SimpleHttpConnectionManager(true)); HttpMethod method = null; String uri = "{接口的uRL直接带参数}}"; method = new Get…
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class SessionHolder { public static void main(Stri…
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class SessionHolder { public static void main(Stri…
一.设置请求头消息 User-Agent模拟浏览器 1.当使用第一节的代码 来 访问推酷的时候,会返回给我们如下信息: 网页内容:<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <p>系统检测亲不是真人行为,…
Redis缓存Mysql模拟用户登录Java实现实例 https://jingyan.baidu.com/article/09ea3ede1dd0f0c0aede3938.html redis+mysql有几种用法? https://www.zhihu.com/question/20734566 初学Redis(3)——用Redis作为Mysql数据库的缓存 http://blog.csdn.net/qtyl1988/article/details/39524713 Redis和MySQL的结合…
Java TCP的基本操作参考前一篇:Java 网络编程 – 基于TCP实现文件上传 实现多用户操作之前先实现以下单用户操作,假设目前有一个用户: 账号:zs 密码:123 服务端: public class LoginServer { public static void main(String[] args) throws IOException { System.out.println("=========server========"); // 1.使用serverSocket…