`
三里小龙
  • 浏览: 86268 次
  • 性别: 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...

    C# 模拟Post抓取数据

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

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

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

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

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

    网页数据抓取

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

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

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

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

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

    post模拟登录,提交表单

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

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

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

    httpclient抓取网页数据和所需的10个jar包

    在IT行业中,网络数据抓取是一项常见的任务,用于获取网页上的信息、分析市场趋势或进行自动化测试。HttpClient是Apache软件基金会开发的一个Java库,专门用于发起HTTP请求并处理响应,是进行网页抓取的重要工具。本...

    网络抓取蜘蛛源程序

    本项目提供的"网络抓取蜘蛛源程序"是使用C#语言开发的,这表明它利用了C#强大的面向对象特性和丰富的.NET Framework库来实现高效的数据抓取。 C#是Microsoft推出的一种现代化、类型安全的编程语言,特别适合构建跨...

    基于jpcap的数据包抓取及网页恢复

    对于POST请求,可能还需要模拟提交表单的数据。通过解析这些数据,可以重建原始网页。 6. **结束捕获**:当不再需要捕获数据包时,调用`close()`方法停止捕获并释放资源。 在压缩包`NetworkSniffer002`中,可能...

    基于Python的http流抓取系统

    这涉及到设置cookies和提交表单数据。 五、异步请求与多线程 为了提高效率,可以使用异步请求或者多线程。Python的`asyncio`库提供了一种轻量级的协程模型,允许并发处理多个请求。对于大量请求,可以使用`...

    Python网络爬虫教程 使用python抓取及分析互联网数据 共13页.pptx

    Python网络爬虫是获取和分析互联网数据的重要工具,本教程将引导你通过Python进行网页抓取、API连接以及浏览器自动化操作。以下是对关键知识点的详细说明: 1. **网页抓取与分析**: - 使用Python进行网页抓取...

    C#post登陆然后进行提交抓数据

    我们需要将这个cookie添加到`HttpClient`的默认请求头中,以便在提交数据或抓取页面时保持会话: ```csharp client.DefaultRequestHeaders.Add("Cookie", "session_id=your_session_id"); ``` 至于数据抓取,可以...

Global site tag (gtag.js) - Google Analytics