• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > 使用Post方法模拟登陆爬取网页的实现方法

使用Post方法模拟登陆爬取网页的实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了post方法,get和post方法的区别,ajax的post方法,get post方法,jquery post方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页。

下面是极简版的代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

import java.net.HttpURLConnection;
import java.net.URL;

import java.util.HashMap;

public class test {

 //post请求地址
 private static final String POST_URL = "";
 
 //模拟谷歌浏览器请求
 private static final String USER_AGENT = "";
 
 //用账号登录某网站后 请求POST_URL链接获取cookie
 private static final String COOKIE = "";
 
 //用账号登录某网站后 请求POST_URL链接获取数据包
 private static final String REQUEST_DATA = "";
 
 public static void main(String[] args) throws Exception {
  HashMap<String, String> map = postCapture(REQUEST_DATA);
  String responseCode = map.get("responseCode");
  String value = map.get("value");
  
  while(!responseCode.equals("200")){
   map = postCapture(REQUEST_DATA);
   responseCode = map.get("responseCode");
   value = map.get("value");
  }
  
  //打印爬取结果
  System.out.println(value);
 }
 
 private static HashMap<String, String> postCapture(String requestData) throws Exception{
  HashMap<String, String> map = new HashMap<>();
  
  URL url = new URL(POST_URL);
  HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
  httpConn.setDoInput(true); // 设置输入流采用字节流
  httpConn.setDoOutput(true); // 设置输出流采用字节流
  httpConn.setUseCaches(false); //设置缓存
  httpConn.setRequestMethod("POST");//POST请求
  httpConn.setRequestProperty("User-Agent", USER_AGENT);
  httpConn.setRequestProperty("Cookie", COOKIE);
  
  PrintWriter out = new PrintWriter(new OutputStreamWriter(httpConn.getOutputStream(), "UTF-8"));
  out.println(requestData);
  out.close();

  int responseCode = httpConn.getResponseCode();
  StringBuffer buffer = new StringBuffer();
  if (responseCode == 200) {
   BufferedReader reader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));
   String line = null;
   while ((line = reader.readLine()) != null) {
    buffer.append(line);
   }
   reader.close();
   httpConn.disconnect();
  }
  
  map.put("responseCode", new Integer(responseCode).toString());
  map.put("value", buffer.toString());
  return map;
 }

}
</div>

以上这篇使用Post方法模拟登陆爬取网页的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用Post方法模拟登陆爬取网页的实现方法

相关文章

  • 2017-05-28Swift 3.0 enum 的灵活使用介绍
  • 2017-05-22Swift 类型转换
  • 2017-05-28浅谈Timer和TimerTask与线程的关系
  • 2017-05-28Swift中用到extension的一些基本的扩展功能讲解
  • 2017-05-28查看import的类是出自哪个jar包的方法
  • 2017-05-28用Swift构建一个简单的iOS邮件应用的方法
  • 2017-05-28在Swift程序中实现手势识别的方法
  • 2017-05-28mac git xcrun error active developer path 错误
  • 2017-05-28Swift面试题及答案整理
  • 2017-05-28Swift UILable 设置内边距实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift数组详细用法解析
    • Swift实现Selection Sort选择排序算法的实例讲解
    • MyBatis中的模糊查询语句
    • 详解Swift中的下标访问用法
    • Swift 构造过程
    • MyBatis 参数类型为String时常见问题及解决方法
    • Swift中使用可选类型完美解决占位问题
    • Hibernate三种状态和Session常用的方法
    • Swift流程控制之循环语句和判断语句详解
    • Servlet实现多文件上传功能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有