package 网络编程;

 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL; public class TestBaidu {
public static void main(String[] args) throws IOException {
URL url=new URL("http://www.baidu.com");
/*此方法会有乱码输出
InputStream is=url.openStream();
byte[] b=new byte[1024];
int len=0;
while((len=is.read(b))!=-1){
System.out.println(new String(b,0,len));
}
*/
BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu.html"),"utf-8"));
String str=null;
while((str=br.readLine())!=null){
bw.append(str);
bw.newLine();
}
//System.out.print(str);
bw.flush();
bw.close();
br.close();
}
}

抓取页面内容

 package 网络编程;

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class Get163URL {
public static void main(String[] args) throws IOException {
URL url=new URL("http://www.163.com");
BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName("gbk")));
StringBuffer sb=new StringBuffer();
String tmp=null;
while((tmp=br.readLine())!=null){
sb.append(tmp);
}
// System.out.println(sb.toString());
Pattern p=Pattern.compile("\"(http:\\/\\/.+?)\"");
Matcher m=p.matcher(sb);
while(m.find())
System.out.println(m.group(1));
}
}

提出链接


 public class WikiDownload {
static final String name = "username";
static final String pwd = "password"; public static void main(String[] args){
CookieManager manager = new CookieManager();
CookieHandler.setDefault(manager);
String wikiUrl = "http://wiki.xxxxx.org/pages/viewpage.action?pageId=71709153";
String loginUrl = "http://wiki.xxxxx.org/login.action?os_destination=%2Fpages%2Fviewpage.action%3FpageId%3D71709153";
try{
URL url = new URL(loginUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36");
String line;
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
try(OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream())){
writer.write("os_username=" + name
+"&os_password="+ pwd
+ "&login=%E7%99%BB%E5%BD%95&os_destination="
+ URLEncoder.encode(wikiUrl.split("http://wiki.xxxxx.org")[0],"utf-8"));
}
try(InputStreamReader reader = new InputStreamReader(connection.getInputStream())){
BufferedReader in = new BufferedReader(reader);
StringBuilder result= new StringBuilder("");
while ((line = in.readLine()) != null) {
result.append("\n");
result.append(line);
}
System.out.println(result);
}
}catch (Exception e){
e.printStackTrace();
} } }

获取需要登录的网页

【java】抓取页面内容,提取链接(此方法可以http get无需账号密码的请求)的更多相关文章

  1. 如何使用angularjs实现抓取页面内容

    <html ng-app="myApp"> <head> <title>angularjs-ajax</title> <scr ...

  2. PHP cURL库函数抓取页面内容

    目录 1 为什么要用cURL? 2 启用cURL 3 基本结构 4 检查错误 5 获取信息 6 基于浏览器的重定向 7 用POST方法发送数据 8 文件上传 9 cURL批处理(multi cURL) ...

  3. nodejs抓取页面内容,并分析有无某些内容的js文件

    nodejs获取网页内容绑定data事件,获取到的数据会分几次相应,如果想全局内容匹配,需要等待请求结束,在end结束事件里把累积起来的全局数据进行操作! 举个例子,比如要在页面中找有没有www.ba ...

  4. C#使用CSS选择器抓取页面内容

    最近在查wpf绘图资料时,偶然看到Python使用CSS选择器抓取网页的功能.觉得很强,这里用C#也实现一下. 先介绍一下CSS选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. ...

  5. Java爬虫系列二:使用HttpClient抓取页面HTML

    爬虫要想爬取需要的信息,首先第一步就要抓取到页面html内容,然后对html进行分析,获取想要的内容.上一篇随笔<Java爬虫系列一:写在开始前>中提到了HttpClient可以抓取页面内 ...

  6. 基于puppeteer模拟登录抓取页面

    关于热图 在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine) 上图中能很清晰的看到用户关注点在那,我们不 ...

  7. Python抓取视频内容

    Python抓取视频内容 Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具 ...

  8. 爬虫抓取页面数据原理(php爬虫框架有很多 )

    爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...

  9. 用PHP抓取页面并分析

    在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.

随机推荐

  1. [转]DBCC (Transact-SQL)

    http://msdn.microsoft.com/zh-cn/library/ms188796.aspx Transact-SQL 编程语言提供 DBCC 语句以作为 SQL Server 的数据库 ...

  2. 查看oracle数据库里哪些语句耗时最长或者效率最低

    CPU: select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_time, v.disk_ ...

  3. "MySql.Data.MySqIClient.MySqlProviderSevices”违反了继承安全 性规则。派生类型必须与基类型的安全可访问性匹配或者比基类型的安 全可访问性低。 "解决方法

    写Code First 时(使用的是MySql数据库),添加好EntityFrame.MySql.Data .MySql.Data.Entity后 ,写好TestDbContext类. 运行时报出一个 ...

  4. Regasm

      程序集注册工具(Regasm.exe) 读取程序集中的元数据,并将所需的项添加到注册表中.注册表允许COM 客户程序以透明方式创建.NET Framework类.类一经注册,任何COM 客户程序都 ...

  5. SaltStack 安装介绍 01

    一.入门指南 1.1 SALTSTACK是什么? The backbone of Salt is the remote execution engine, which creates a high-s ...

  6. 【转】使用nvm快速搭建 Node.js 开发环境

    原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...

  7. linux禁用锁定和解除解锁用户账号的方法

    Linux系统使用的是/etc/shadow保存加密了的用户密码,要禁止一个帐号的话,最快的方法就是修改存储于/etc/shadow中的密码. 一般情况下,一个有效的Linux用户在/etc/shad ...

  8. python处理csv文件问题解决贴

    实际工作中,碰到这么个问题:有个软件跑在linux系统上,其中用到一个数据库是csv格式的,但要向这个数据库添加600行新的数据,数据源同样是一个csv格式的文件. 有了目标,开始干活.首先想到的是, ...

  9. vue-cli 使用小技巧

    1.关闭烦人的eslint 语法检测,在 config 文件夹下 设置: // Use Eslint Loader? // If true, your code will be linted duri ...

  10. for循环,for in和for of的区别

    最近在写代码,总在被烦恼着到底遍历的时候到底该使用for循环,还是使用for in或者for of  ,今天查了以下 ,写出来. 我们一般用for循环来遍历数组,因它可以按顺序的返回每一个索引的值或者 ...