当前位置:首页 » 编程语言 » java模拟爬虫

java模拟爬虫

发布时间: 2022-10-17 22:15:08

① 如何用java写一个爬虫

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

import java.io.File;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DownMM {
public static void main(String[] args) throws Exception {
//out为输出的路径,注意要以\\结尾
String out = "D:\\JSP\\pic\\java\\";
try{
File f = new File(out);
if(! f.exists()) {
f.mkdirs();
}
}catch(Exception e){
System.out.println("no");
}

String url = "http://www.mzitu.com/share/comment-page-";
Pattern reg = Pattern.compile("<img src=\"(.*?)\"");
for(int j=0, i=1; i<=10; i++){
URL uu = new URL(url+i);
URLConnection conn = uu.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
Scanner sc = new Scanner(conn.getInputStream());
Matcher m = reg.matcher(sc.useDelimiter("\\A").next());
while(m.find()){
Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg"));
System.out.println("已下载:"+j++);
}
}
}
}

② 请教用java编写一个网络爬虫程序

你说说你都要什么功能啊,要是功能简单我就给你做,复杂你得给点钱

③ java如何做高级爬虫

下面说明知乎爬虫的源码和涉及主要技术点:
(1)程序package组织

(2)模拟登录(爬虫主要技术点1)
要爬去需要登录的网站数据,模拟登录是必要可少的一步,而且往往是难点。知乎爬虫的模拟登录可以做一个很好的案例。要实现一个网站的模拟登录,需要两大步骤是:(1)对登录的请求过程进行分析,找到登录的关键请求和步骤,分析工具可以有IE自带(快捷键F12)、Fiddler、HttpWatcher;(2)编写代码模拟登录的过程。

(3)网页下载(爬虫主要技术点2)
模拟登录后,便可下载目标网页html了。知乎爬虫基于HttpClient写了一个网络连接线程池,并且封装了常用的get和post两种网页下载的方法。

(4)自动获取网页编码(爬虫主要技术点3)
自动获取网页编码是确保下载网页html不出现乱码的前提。知乎爬虫中提供方法可以解决绝大部分乱码下载网页乱码问题。

(5)网页解析和提取(爬虫主要技术点4)
使用Java写爬虫,常见的网页解析和提取方法有两种:利用开源Jar包Jsoup和正则。一般来说,Jsoup就可以解决问题,极少出现Jsoup不能解析和提取的情况。Jsoup强大功能,使得解析和提取异常简单。知乎爬虫采用的就是Jsoup。 ...展开下面说明知乎爬虫的源码和涉及主要技术点:
(1)程序package组织

(2)模拟登录(爬虫主要技术点1)
要爬去需要登录的网站数据,模拟登录是必要可少的一步,而且往往是难点。知乎爬虫的模拟登录可以做一个很好的案例。要实现一个网站的模拟登录,需要两大步骤是:(1)对登录的请求过程进行分析,找到登录的关键请求和步骤,分析工具可以有IE自带(快捷键F12)、Fiddler、HttpWatcher;(2)编写代码模拟登录的过程。

(3)网页下载(爬虫主要技术点2)
模拟登录后,便可下载目标网页html了。知乎爬虫基于HttpClient写了一个网络连接线程池,并且封装了常用的get和post两种网页下载的方法。

(4)自动获取网页编码(爬虫主要技术点3)
自动获取网页编码是确保下载网页html不出现乱码的前提。知乎爬虫中提供方法可以解决绝大部分乱码下载网页乱码问题。

(5)网页解析和提取(爬虫主要技术点4)
使用Java写爬虫,常见的网页解析和提取方法有两种:利用开源Jar包Jsoup和正则。一般来说,Jsoup就可以解决问题,极少出现Jsoup不能解析和提取的情况。Jsoup强大功能,使得解析和提取异常简单。知乎爬虫采用的就是Jsoup。

(6)正则匹配与提取(爬虫主要技术点5)
虽然知乎爬虫采用Jsoup来进行网页解析,但是仍然封装了正则匹配与提取数据的方法,因为正则还可以做其他的事情,如在知乎爬虫中使用正则来进行url地址的过滤和判断。

(7)数据去重(爬虫主要技术点6)
对于爬虫,根据场景不同,可以有不同的去重方案。(1)少量数据,比如几万或者十几万条的情况,使用Map或Set便可;(2)中量数据,比如几百万或者上千万,使用BloomFilter(着名的布隆过滤器)可以解决;(3)大量数据,上亿或者几十亿,Redis可以解决。知乎爬虫给出了BloomFilter的实现,但是采用的Redis进行去重。

(8)设计模式等Java高级编程实践
除了以上爬虫主要的技术点之外,知乎爬虫的实现还涉及多种设计模式,主要有链模式、单例模式、组合模式等,同时还使用了Java反射。除了学习爬虫技术,这对学习设计模式和Java反射机制也是一个不错的案例。
4. 一些抓取结果展示收起

④ 如何用Java写一个爬虫

mfc中,定义private:Cbutton m_btn;//运行的地方输入m_btn.Create(L”增加的按钮!”,BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,CRect(0,0,100,100),this,123);第一个参数就是按钮的标题,不用多说了;第二个参数是按钮的类型。BS_DEFPUSHBUTTON是这个按钮本身的类型。WS_VISIBLE是一个窗口的类型,因为按钮本身也是一个窗口,所以它也具有窗口的类型,WS_VISIBLE就是为了让这个按钮在创建的时候本身就是可见的,如果这里没有加WS_VISIBLE,那么最后我们可以调用ShowWindow来显示这个按钮。WS_CHILD是一个子窗口类型。第三个参数是按钮控件矩形区域的大小,这里我们是通过调用CRect类来完成。第四个参数是父窗口,我们这里用this来表示。第五个参数是按钮的控件,我们定为123。

⑤ 如何用Java写一个爬虫

import java.io.File;import java.net.URL;import java.net.URLConnection;import java.nio.file.Files;import java.nio.file.Paths;import java.util.Scanner;import java.util.UUID;import java.util.regex.Matcher;import java.util.regex.Pa.

⑥ 如何用Java写一个爬虫

import java.io.File;import java.net.URL;import java.net.URLConnection;import java.nio.file.Files;import java.nio.file.Paths;import java.util.Scanner;import java.util.UUID;import java.util.regex.Matcher;import java.util.regex.Pattern; public class DownMM { public static void main(String[] args) throws Exception { //out为输出的路径,注意要以\\结尾 String out = "D:\\JSP\\pic\\java\\"; try{ File f = new File(out); if(! f.exists()) { f.mkdirs(); } }catch(Exception e){ System.out.println("no"); } String url = "http://www.mzitu.com/share/comment-page-"; Pattern reg = Pattern.compile("<img src=\"(.*?)\""); for(int j=0, i=1; i<=10; i++){ URL uu = new URL(url+i); URLConnection conn = uu.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"); Scanner sc = new Scanner(conn.getInputStream()); Matcher m = reg.matcher(sc.useDelimiter("\\A").next()); while(m.find()){ Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg")); System.out.println("已下载:"+j++); } } }}

⑦ 如何使用Java语言实现一个网页爬虫

Java开源Web爬虫

Heritrix

Heritrix是一个开源,可扩展的web爬虫项目。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。

更多Heritrix信息

WebSPHINX

WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。

更多WebSPHINX信息

WebLech

WebLech是一个功能强大的Web站点下载与镜像工具。它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。WebLech有一个功能控制台并采用多线程操作。

⑧ 如何使用Java语言实现一个网页爬虫

我给你代码
public class DEmo {
public static void match(String s1) {
Pattern p = Pattern.compile("<a(.*)>.*</a>");
Matcher m = p.matcher(s1);
while (m.find()) {
System.out.println(m.group(1));
}
}

public static void main(String args[]) {
URL url;
int responsecode;
HttpURLConnection urlConnection;
BufferedReader reader;
String line;
try {
// 生成一个URL对象,要获取源代码的网页地址为:http://www.sina.com.cn
url = new URL("http://www.jb51.net/article/97787.htm");
// 打开URL
urlConnection = (HttpURLConnection) url.openConnection();
// 获取服务器响应代码
responsecode = urlConnection.getResponseCode();
String temp = "";
if (responsecode == 200) {
// 得到输入流,即获得了网页的内容
reader = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(), "GBK"));
while ((line = reader.readLine()) != null) {
temp = temp + line;
}
System.out.println(temp);
match(temp);

} else {
System.out.println("获取不到网页的源码,服务器响应代码为:" + responsecode);
}
} catch (Exception e) {
System.out.println("获取不到网页的源码,出现异常:" + e);
}

}
}

热点内容
传奇手游脚本吧 发布:2024-12-25 00:14:00 浏览:169
服务器voc是什么 发布:2024-12-25 00:12:21 浏览:995
查看java环境变量 发布:2024-12-25 00:03:27 浏览:140
迅雷种子下载php 发布:2024-12-25 00:02:49 浏览:873
perl加密 发布:2024-12-24 23:51:22 浏览:987
手机优酷视频缓存不了 发布:2024-12-24 23:50:36 浏览:677
office缓存文件在哪 发布:2024-12-24 23:50:31 浏览:292
进程优先级调度算法 发布:2024-12-24 23:16:47 浏览:674
6加密法 发布:2024-12-24 23:15:47 浏览:651
csol是什么服务器 发布:2024-12-24 23:12:44 浏览:905