`
三里小龙
  • 浏览: 87846 次
  • 性别: Icon_minigender_1
  • 来自: 孝感
社区版块
存档分类
最新评论

抓取表单请求数据

    博客分类:
  • Java
阅读更多

 

基于网络流的方式读取特定URL资源。

通过网络流连接(URLConnection)对象,设定请求相关属性;根据表单提交方式(POST|GET)设置远程网络流请求方式;通过网络输出流对象追加请求参数列表;同时,需注意要设定是否打开网络输出流对象以便读取返回的网络流数据;

 

package org.fanzone.net;

 

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

 

/** 

 * Title: base<br> 

 * Description: Grab Data from URL resource.<br> 

 * Copyright: Copyright (c) 2011 <br> 

 * Create DateTime: Jul 7, 2011 5:41:07 PM <br> 

 * @author wangmeng

 */

public class Grab {

 

/**

* Read out stream and fill it into a specified file.

* @param is

* @param filePath

*/

private static void readerHandle(InputStream is, String filePath){

BufferedReader br = null;

BufferedWriter bw = null;

File file = null;

String content = "";

try {

file = new File(filePath);

if(file.exists()){

file.delete();

}

file.createNewFile();

br = new BufferedReader(new InputStreamReader(is));

bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));

while(null != (content = br.readLine())){

bw.append(content);

}

bw.close();

br.close();

Runtime.getRuntime().exec("explorer " + filePath + "");

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args){

final String TARGET_URL = "http://www.SunnySoLong.com/net/grab.do";

URL url = null;

HttpURLConnection connection = null;

String linkParams = "";

try {

url = new URL(TARGET_URL);

connection = (HttpURLConnection) url.openConnection();

connection.setRequestProperty("Connection","close");

connection.setRequestProperty("Keep-Alive","close");

connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; (R1 1.5); .NETSPX2; .NET CLR 2.0.50727)");

connection.setRequestProperty("Cache-Control","no-cache");

connection.setRequestMethod("POST");

connection.setDoOutput(true);

linkParams="man=sun&woman=moon";

connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

connection.setRequestProperty("Content-Length", "" + (linkParams.getBytes()).length );

connection.setRequestProperty("Referer",TARGET_URL);

 

/** Append Parameters */

    OutputStream output = connection.getOutputStream();

    output.write(linkParams.getBytes());

    output.flush();

    output.close();

 

    connection.connect();

    System.out.println(connection.getResponseCode());

System.out.println("start ...");

readerHandle(connection.getInputStream(),"C:\\grab.html");

System.out.println("end ...");

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}


 

分享到:
评论
2 楼 三里小龙 2011-07-13  
xbyang18 写道
风景这边独好……糟糕!回不去了!我被卡住了!!!

请问阁下是哪里出现问题了?
1 楼 xbyang18 2011-07-13  
风景这边独好……糟糕!回不去了!我被卡住了!!!






相关推荐

    php snoopy 模拟表单提交 数据抓取

    Snoopy是一个PHP库,专门用于模拟浏览器行为,进行HTTP请求,尤其是处理表单提交和登录过程,从而实现网页数据的抓取。本篇文章将详细介绍如何使用Snoopy库进行模拟表单提交和数据抓取。 首先,我们需要了解Snoopy...

    AMF抓取flex页面数据

    本教程将详细介绍如何抓取使用AMF协议的Flex页面数据,并涉及模拟登录和页面抓取的相关知识。 1. **AMF简介** - AMF是一种高效的数据序列化格式,用于在Flex客户端和服务器之间传输数据。它比XML或JSON更快,因为...

    Java网页抓取数据

    它们提供了发送HTTP请求并接收响应的功能,是抓取网页数据的基础。 2. **HTML解析**:解析HTML文档以提取所需数据,可以使用Jsoup库。Jsoup支持CSS选择器,能够方便地定位到网页元素,并提供API进行元素的操作和...

    用Excel抓取html数据.pdf

    接着,我们使用Document.Forms来submit表单,并将要抓取的数据存储在变量中。最后,我们使用MsgBox来显示抓取的数据。 使用HttpRequest抓取数据 在上面的代码中,我们使用HttpRequest来抓取HTML数据。首先,我们...

    网页抓取+表单提取源代码

    在本项目中,我们关注的是一个由Linux环境下用C语言编写的程序,其核心功能是抓取网页并解析其中的表单数据。 首先,让我们详细了解一下网页抓取。网页抓取通过模拟浏览器的行为,向服务器发送HTTP请求来获取HTML...

    C# 抓取数据

    对于更复杂的数据抓取任务,例如模拟表单提交或者处理JavaScript渲染的页面,可以考虑使用像Selenium这样的自动化测试工具,它可以驱动真实或模拟的浏览器执行用户操作。 另外,如果需要抓取的数据是以JSON或XML...

    java抓取任何指定网页的数据

    // 请求数据 private String method = "GET"; // 请求方法 private String charset = "GBK"; // 字符集 private String pattern; // 正则表达式 // 发送请求并处理响应 try { URL url = new URL(target); // 创建...

    C# 模拟Post抓取数据

    POST请求通常用于提交表单数据,而不仅仅是获取静态网页内容。在本文中,我们将深入探讨如何使用C#实现这个功能,以及相关的重要知识点。 首先,要模拟POST请求,我们需要理解HTTP协议的基本原理。POST请求包括一个...

    天眼查公司数据抓取 自动登陆 跳转抓取 翻页 写入数据库

    在IT行业中,数据抓取是一项重要的技能,尤其在大数据时代,获取有效信息并进行分析是很多企业和个人的需求。本项目涉及的主题是“天眼查公司数据抓取、自动登录、跳转抓取、翻页及写入数据库”。下面将详细阐述这个...

    PHP使用Curl实现模拟登录及抓取数据功能示例

    在PHP开发中,有时我们需要获取一些需要用户登录后才能访问的网页内容,此时可以借助Curl库来模拟登录过程并抓取数据。Curl库是一个强大的URL处理工具,支持多种协议,包括HTTP、HTTPS等,它能让我们在PHP中发送HTTP...

    Python爬虫抓取手机APP的传输数据.pdf

    Python爬虫抓取手机APP的传输数据 本文主要介绍了使用 Python 爬虫抓取手机 APP 的传输数据,特别是抓取超级课程表 APP 里用户发的话题。整个过程可以分为三个部分:抓取 APP 数据包、登录和抓取数据。 一、抓取 ...

    网页数据抓取

    POST请求常用于向服务器提交数据,比如填写表单或进行用户注册。与GET请求不同,POST请求的数据不会显示在URL中,而是包含在请求体里,因此更适合传输敏感信息。 数据抓取的过程中,可能会遇到需要登录的网站。在...

    使用 Python 进行网页抓取:从现代 Web 中提取数据,第三版

    通过编写简单的自动化程序,您可以查询 Web 服务器、请求数据并解析数据以提取所需的信息。这个彻底更新的第三版不仅向您介绍了网络抓取,而且还作为从现代网络抓取几乎所有类型数据的综合指南。 第一部分重点介绍...

    java网络爬虫模拟登入抓取数据

    5. **发送登录请求**:执行POST请求,模拟用户提交登录表单。 6. **处理登录响应**:接收服务器返回的响应,检查是否登录成功。这可以通过检查重定向URL、特定的HTML内容或Cookie来判断。 7. **后续抓取**:如果...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    在Web开发和数据抓取领域,Java爬虫技术是实现网页自动化信息提取的重要手段。本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据...

    影刀RPA系列公开课3:网页自动化——数据抓取.rar

    【影刀RPA系列公开课3:网页自动化——数据抓取】是针对RPA(Robotic Process Automation)技术的一堂深入讲解课程,主要聚焦于如何利用RPA工具进行网页自动化操作,特别是数据抓取这一关键环节。RPA是一种新兴的...

    post模拟登录,提交表单

    在IT行业中,模拟登录和提交表单是网络自动化和数据抓取的重要技术,常用于测试、数据分析或自动化脚本编写。这里的"post模拟登录,提交表单"涉及到HTTP请求方式中的POST方法,以及如何处理登录过程和后续的表单提交...

    java抓取网站数据.pdf

    - POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 2. **URL**:统一资源定位符,用来标识互联网上的某个资源。 3. **编码格式**:网页通常采用不同的字符编码格式,...

    模拟用户登录保存登录状态抓取数据.pdf

    为了便于理解,文章将分几个部分进行阐述:HTTP请求与响应、模拟登录过程、维持会话状态、数据抓取与处理。 ### HTTP请求与响应 在网络编程中,模拟用户登录首先需要构造一个HTTP POST请求。在给定的代码中,使用...

    该项目为一个集数据抓取与展示一体的ACM队员数据系统,基于Django、python实现。.zip

    该项目是一个专为ACM竞赛团队设计的数据管理系统,它结合了数据抓取和展示功能,全部基于Python编程语言和Django框架构建。这个系统的目的是为了帮助团队有效地收集、处理和展示与ACM竞赛相关的各种信息,从而提升...

Global site tag (gtag.js) - Google Analytics