javajava编写网络爬虫虫如何获取一个网站上的所有链接?

前言:写这篇文章之前,主要是我看了几篇类似的爬虫写法,有的是用的队列来写,感觉不是很直观,还有的只有一个请求然后进行页面解析,根本就没有自动爬起来这也叫爬虫?因此我结合自己的思路写了一下简单的爬虫,测试用例就是自动抓取我的博客网站()的所有链接。
一 算法简介
&&&&&&&程序在思路上采用了广度优先算法,对未遍历过的链接逐次发起GET请求,然后对返回来的页面用正则表达式进行解析,取出其中未被发现的新链接,加入集合中,待下一次循环时遍历。
&&&&&&&具体实现上使用了Map&String, Boolean&,键值对分别是链接和是否被遍历标志。程序中使用了两个Map集合,分别是:oldMap和newMap,初始的链接在oldMap中,然后对oldMap里面的标志为false的链接发起请求,解析页面,用正则取出&a&标签下的链接,如果这个链接未在oldMap和newMap中,则说明这是一条新的链接,同时要是这条链接是我们需要获取的目标网站的链接的话,我们就将这条链接放入newMap中,一直解析下去,等这个页面解析完成,把oldMap中当前页面的那条链接的值设为true,表示已经遍历过了。最后是当整个oldMap未遍历过的链接都遍历结束后,如果发现newMap不为空,则说明这一次循环有新的链接产生,因此将这些新的链接加入oldMap中,继续递归遍历,反之则说明这次循环没有产生新的链接,继续循环下去已经不能产生新链接了,因为任务结束,返回链接集合oldMap
二 程序实现
上面相关思路已经说得很清楚了,并且代码中关键地方有注释,因此这里就不多说了,代码如下:
import&java.io.BufferedR
import&java.io.IOE
import&java.io.InputS
import&java.io.InputStreamR
import&java.net.HttpURLC
import&java.net.MalformedURLE
import&java.net.URL;
import&java.util.LinkedHashM
import&java.util.M
import&java.util.regex.M
import&java.util.regex.P
public&class&WebCrawlerDemo&{
&&&&public&static&void&main(String[]&args)&{
&&&&&&&&WebCrawlerDemo&webCrawlerDemo&=&new&WebCrawlerDemo();
&&&&&&&&webCrawlerDemo.myPrint("");
&&&&public&void&myPrint(String&baseUrl)&{
&&&&&&&&Map&String,&Boolean&&oldMap&=&new&LinkedHashMap&String,&Boolean&();&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&String&oldLinkHost&=&"";&&
&&&&&&&&Pattern&p&=&pile("(https?://)?[^/\\s]*");&//比如:
&&&&&&&&Matcher&m&=&p.matcher(baseUrl);
&&&&&&&&if&(m.find())&{
&&&&&&&&&&&&oldLinkHost&=&m.group();
&&&&&&&&oldMap.put(baseUrl,&false);
&&&&&&&&oldMap&=&crawlLinks(oldLinkHost,&oldMap);
&&&&&&&&for&(Map.Entry&String,&Boolean&&mapping&:&oldMap.entrySet())&{
&&&&&&&&&&&&System.out.println("链接:"&+&mapping.getKey());
&&&&&*&抓取一个网站所有可以抓取的网页链接,在思路上使用了广度优先算法
&&&&&*&对未遍历过的新链接不断发起GET请求,一直到遍历完整个集合都没能发现新的链接
&&&&&*&则表示不能发现新的链接了,任务结束
&&&&&*&@param&oldLinkHost&&域名,如:
&&&&&*&@param&oldMap&&待遍历的链接集合
&&&&&*&@return&返回所有抓取到的链接集合
&&&&private&Map&String,&Boolean&&crawlLinks(String&oldLinkHost,
&&&&&&&&&&&&Map&String,&Boolean&&oldMap)&{
&&&&&&&&Map&String,&Boolean&&newMap&=&new&LinkedHashMap&String,&Boolean&();
&&&&&&&&String&oldLink&=&"";
&&&&&&&&for&(Map.Entry&String,&Boolean&&mapping&:&oldMap.entrySet())&{
&&&&&&&&&&&&System.out.println("link:"&+&mapping.getKey()&+&"--------check:"
&&&&&&&&&&&&&&&&&&&&+&mapping.getValue());
&&&&&&&&&&&&
&&&&&&&&&&&&if&(!mapping.getValue())&{
&&&&&&&&&&&&&&&&oldLink&=&mapping.getKey();
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&URL&url&=&new&URL(oldLink);
&&&&&&&&&&&&&&&&&&&&HttpURLConnection&connection&=&(HttpURLConnection)&url
&&&&&&&&&&&&&&&&&&&&&&&&&&&&.openConnection();
&&&&&&&&&&&&&&&&&&&&connection.setRequestMethod("GET");
&&&&&&&&&&&&&&&&&&&&connection.setConnectTimeout(2000);
&&&&&&&&&&&&&&&&&&&&connection.setReadTimeout(2000);
&&&&&&&&&&&&&&&&&&&&if&(connection.getResponseCode()&==&200)&{
&&&&&&&&&&&&&&&&&&&&&&&&InputStream&inputStream&=&connection.getInputStream();
&&&&&&&&&&&&&&&&&&&&&&&&BufferedReader&reader&=&new&BufferedReader(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&InputStreamReader(inputStream,&"UTF-8"));
&&&&&&&&&&&&&&&&&&&&&&&&String&line&=&"";
&&&&&&&&&&&&&&&&&&&&&&&&Pattern&pattern&=&Pattern
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.compile("&a.*?href=[\"']?((https?://)?/?[^\"']+)[\"']?.*?&(.+)&/a&");
&&&&&&&&&&&&&&&&&&&&&&&&Matcher&matcher&=&null;
&&&&&&&&&&&&&&&&&&&&&&&&while&((line&=&reader.readLine())&!=&null)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&matcher&=&pattern.matcher(line);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(matcher.find())&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&newLink&=&matcher.group(1).trim();&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(!newLink.startsWith("http"))&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(newLink.startsWith("/"))
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newLink&=&oldLinkHost&+&newL
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newLink&=&oldLinkHost&+&"/"&+&newL
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(newLink.endsWith("/"))
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newLink&=&newLink.substring(0,&newLink.length()&-&1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(!oldMap.containsKey(newLink)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!newMap.containsKey(newLink)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newLink.startsWith(oldLinkHost))&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newMap.put(newLink,&false);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&}&catch&(MalformedURLException&e)&{
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&Thread.sleep(1000);
&&&&&&&&&&&&&&&&}&catch&(InterruptedException&e)&{
&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&oldMap.replace(oldLink,&false,&true);
&&&&&&&&&&&&}
&&&&&&&&if&(!newMap.isEmpty())&{
&&&&&&&&&&&&oldMap.putAll(newMap);
&&&&&&&&&&&&oldMap.putAll(crawlLinks(oldLinkHost,&oldMap));&&
&&&&&&&&return&oldM
三 最后的测试效果
PS:其实用递归这种方式不是太好,因为要是网站页面比较多的话,程序运行时间长了对内存的消耗会非常大,不过因为我的博客网站页面不是很多,因此效果还可以。
==============仅供参考============
阅读(...) 评论()17:23 提问
请求一个url,用java抓取所有网页链接以及内容。
比如用这个当实例:
按赞数排序
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!
简单的页面,可以考虑抓取内容后按照xml进行分析!
看你具体想要什么信息了。
其他相似问题用户名:pangfc
文章数:286
评论数:89
访问量:181091
注册日期:
阅读量:1297
阅读量:3317
阅读量:448030
阅读量:1133039
51CTO推荐博文
前言:这是Java爬虫实战的第二篇文章,在第一篇文章仅仅只是抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中。这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/)。本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015年电影的下载链接。注:文末有我抓取到的整个列表的下载链接(包括:电影名称和迅雷下载链接)一 原理简介&&&&&&&其实原理都跟第一篇文章差不多,不同的是鉴于这个网站的分类列表实在太多,如果不对这些标签加以取舍的话,需要花费的时间难以想象&分类链接和标签链接都不要,不通过这些链接去爬取其他页面,只通过页底的所有类型电影的分页去获取其他页面的电影列表即可。同时,对于电影详情页面,仅仅只是抓取其中的电影标题和迅雷下载链接,并不进行深层次的爬行,详情页面的一些推荐电影等链接通通不要。& & & &最后就是将所有获取到的电影的下载链接保存在videoLinkMap这个集合中,通过遍历这个集合将数据保存到MySQL里注:如果对原理还是不够清晰的话,推荐看我的上一篇文章:二 代码实现&&&&&&&实现原理已经在上面说了,并且代码中有详细注释,因此这里就不多说了,代码如下:package&
import&java.io.BufferedR
import&java.io.IOE
import&java.io.InputS
import&java.io.InputStreamR
import&java.net.HttpURLC
import&java.net.MalformedURLE
import&java.net.URL;
import&java.sql.C
import&java.sql.PreparedS
import&java.sql.SQLE
import&java.util.LinkedHashM
import&java.util.M
import&java.util.regex.M
import&java.util.regex.P
public&class&VideoLinkGrab&{
public&static&void&main(String[]&args)&{
VideoLinkGrab&videoLinkGrab&=&new&VideoLinkGrab();
videoLinkGrab.saveData("http://www.80s.la/movie/list/-2015----p");
&*&将获取到的数据保存在数据库中
&*&@param&baseUrl
&*&&&&&&&&&&&&爬虫起点
&*&@return&null
public&void&saveData(String&baseUrl)&{
Map&String,&Boolean&&oldMap&=&new&LinkedHashMap&String,&Boolean&();&//&存储链接-是否被遍历
Map&String,&String&&videoLinkMap&=&new&LinkedHashMap&String,&String&();&//&视频下载链接
String&oldLinkHost&=&"";&//&host
Pattern&p&=&pile("(https?://)?[^/\\s]*");&//&比如:
Matcher&m&=&p.matcher(baseUrl);
if&(m.find())&{
oldLinkHost&=&m.group();
oldMap.put(baseUrl,&false);
videoLinkMap&=&crawlLinks(oldLinkHost,&oldMap);
//&遍历,然后将数据保存在数据库中
Connection&connection&=&JDBCDemo.getConnection();
for&(Map.Entry&String,&String&&mapping&:&videoLinkMap.entrySet())&{
PreparedStatement&pStatement&=&connection
.prepareStatement("insert&into&movie(MovieName,MovieLink)&values(?,?)");
pStatement.setString(1,&mapping.getKey());
pStatement.setString(2,&mapping.getValue());
pStatement.executeUpdate();
pStatement.close();
System.out.println(mapping.getKey()&+&"&:&"&+&mapping.getValue());
connection.close();
}&catch&(SQLException&e)&{
e.printStackTrace();
&*&抓取一个网站所有可以抓取的网页链接,在思路上使用了广度优先算法&对未遍历过的新链接不断发起GET请求,&一直到遍历完整个集合都没能发现新的链接
&*&则表示不能发现新的链接了,任务结束
&*&对一个链接发起请求时,对该网页用正则查找我们所需要的视频链接,找到后存入集合videoLinkMap
&*&@param&oldLinkHost
&*&&&&&&&&&&&&域名,如:
&*&@param&oldMap
&*&&&&&&&&&&&&待遍历的链接集合
&*&@return&返回所有抓取到的视频下载链接集合
private&Map&String,&String&&crawlLinks(String&oldLinkHost,
Map&String,&Boolean&&oldMap)&{
Map&String,&Boolean&&newMap&=&new&LinkedHashMap&String,&Boolean&();&//&每次循环获取到的新链接
Map&String,&String&&videoLinkMap&=&new&LinkedHashMap&String,&String&();&//&视频下载链接
String&oldLink&=&"";
for&(Map.Entry&String,&Boolean&&mapping&:&oldMap.entrySet())&{
//&System.out.println("link:"&+&mapping.getKey()&+&"--------check:"
//&+&mapping.getValue());
//&如果没有被遍历过
if&(!mapping.getValue())&{
oldLink&=&mapping.getKey();
//&发起GET请求
URL&url&=&new&URL(oldLink);
HttpURLConnection&connection&=&(HttpURLConnection)&url
.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(2500);
connection.setReadTimeout(2500);
if&(connection.getResponseCode()&==&200)&{
InputStream&inputStream&=&connection.getInputStream();
BufferedReader&reader&=&new&BufferedReader(
new&InputStreamReader(inputStream,&"UTF-8"));
String&line&=&"";
Pattern&pattern&=&
Matcher&matcher&=&
//电影详情页面,取出其中的视频下载链接,不继续深入抓取其他页面
if(isMoviePage(oldLink)){
boolean&checkTitle&=&
String&title&=&"";
while&((line&=&reader.readLine())&!=&null)&{
//取出页面中的视频标题
if(!checkTitle){
pattern&=&pile("([^\\s]+).*?&/title&");
matcher&=&pattern.matcher(line);
if(matcher.find()){
title&=&matcher.group(1);
checkTitle&=&
//&取出页面中的视频下载链接
pattern&=&Pattern
.compile("(thunder:[^\"]+).*thunder[rR]es[tT]itle=\"[^\"]*\"");
matcher&=&pattern.matcher(line);
if&(matcher.find())&{
videoLinkMap.put(title,matcher.group(1));
System.out.println("视频名称:&"
+&title&+&"&&------&&视频链接:"
+&matcher.group(1));
&&//当前页面已经检测完毕
//电影列表页面
else&if(checkUrl(oldLink)){
while&((line&=&reader.readLine())&!=&null)&{
pattern&=&Pattern
.compile("&a&href=\"([^\"\\s]*)\"");
matcher&=&pattern.matcher(line);
while&(matcher.find())&{
String&newLink&=&matcher.group(1).trim();&//&链接
//&判断获取到的链接是否以http开头
if&(!newLink.startsWith("http"))&{
if&(newLink.startsWith("/"))
newLink&=&oldLinkHost&+&newL
newLink&=&oldLinkHost&+&"/"&+&newL
//&去除链接末尾的&/
if&(newLink.endsWith("/"))
newLink&=&newLink.substring(0,
newLink.length()&-&1);
//&去重,并且丢弃其他网站的链接
if&(!oldMap.containsKey(newLink)
&&&!newMap.containsKey(newLink)
&&&(checkUrl(newLink)&||&isMoviePage(newLink)))&{
System.out.println("temp:&"&+&newLink);
newMap.put(newLink,&false);
reader.close();
inputStream.close();
connection.disconnect();
}&catch&(MalformedURLException&e)&{
e.printStackTrace();
}&catch&(IOException&e)&{
e.printStackTrace();
Thread.sleep(1000);
}&catch&(InterruptedException&e)&{
e.printStackTrace();
oldMap.replace(oldLink,&false,&true);
//&有新链接,继续遍历
if&(!newMap.isEmpty())&{
oldMap.putAll(newMap);
videoLinkMap.putAll(crawlLinks(oldLinkHost,&oldMap));&//&由于Map的特性,不会导致出现重复的键值对
return&videoLinkM
&*&判断是否是2015年的电影列表页面
&*&@param&url&待检查URL
&*&@return&状态
public&boolean&checkUrl(String&url){
Pattern&pattern&=&&pile("http://www.80s.la/movie/list/-2015----p\\d*");
Matcher&matcher&=&pattern.matcher(url);
if(matcher.find())
return&&&//2015年的列表
&*&判断页面是否是电影详情页面
&*&@param&url&&页面链接
&*&@return&状态
public&boolean&isMoviePage(String&url){
Pattern&pattern&=&&pile("http://www.80s.la/movie/\\d+");
Matcher&matcher&=&pattern.matcher(url);
if(matcher.find())
return&&&//电影页面
}注:如果想要实现抓取其他网站的一些指定内容的话,需要将其中的一些正则表达式根据实际情况进行合理修改三 测试效果附:我已经将数据导出成Word文档了,欢迎大家下载。百度云链接:本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
10:40:42 18:05:23 18:43:25 23:29:07 01:27:38把鼠标放在超链接上,浏览器左下角不是有网页链接的嘛,请问怎么用java爬虫获取这些链接?谢谢了 - 知乎3被浏览260分享邀请回答0添加评论分享收藏感谢收起java-spider 爬虫,一个很简单的网络 能够从网页爬取内容 Develop 238万源代码下载-
&文件名称: java-spider
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 2608 KB
&&上传时间:
&&下载次数: 49
&&提 供 者:
&详细说明:java 爬虫,一个很简单的网络爬虫,能够从网页爬取内容-java spider
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&zhizhu\zhizhu\zhizhu\build\web\detail.jsp&&......\......\......\.....\...\index.jsp&&......\......\......\.....\...\META-INF\context.xml&&......\......\......\.....\...\........\MANIFEST.MF&&......\......\......\.....\...\WEB-INF\classes\com\sohu\bean\NewsBean.class&&......\......\......\.....\...\.......\.......\...\....\crawler\Crawler$1.class&&......\......\......\.....\...\.......\.......\...\....\.......\Crawler.class&&......\......\......\.....\...\.......\.......\...\....\.......\LinkDB.class&&......\......\......\.....\...\.......\.......\...\....\.......\LinkFilter.class&&......\......\......\.....\...\.......\.......\...\....\.......\LinkParser$1.class&&......\......\......\.....\...\.......\.......\...\....\.......\LinkParser$2.class&&......\......\......\.....\...\.......\.......\...\....\.......\LinkParser.class&&......\......\......\.....\...\.......\.......\...\....\.......\NewsToDB.class&&......\......\......\.....\...\.......\.......\...\....\.......\Queue.class&&......\......\......\.....\...\.......\.......\...\....\db\ConnectionManager.class&&......\......\......\.....\...\.......\.......\...\....\servlet\GetNewsServlet$1.class&&......\......\......\.....\...\.......\.......\...\....\.......\GetNewsServlet.class&&......\......\......\.....\...\.......\.......\...\....\SohuNews$1.class&&......\......\......\.....\...\.......\.......\...\....\SohuNews.class&&......\......\......\.....\...\.......\lib\htmllexer.jar&&......\......\......\.....\...\.......\...\htmlparser.jar&&......\......\......\.....\...\.......\...\mysql-connector-java-5.1.6-bin.jar&&......\......\......\.....\...\.......\web.xml&&......\......\......\build.xml&&......\......\......\dist\Sohu.war&&......\......\......\nbproject\ant-deploy.xml&&......\......\......\.........\build-impl.xml&&......\......\......\.........\genfiles.properties&&......\......\......\.........\private\private.properties&&......\......\......\.........\.......\private.xml&&......\......\......\.........\project.properties&&......\......\......\.........\project.xml&&......\......\......\news.sql&&......\......\......\src\conf\MANIFEST.MF&&......\......\......\...\java\com\sohu\bean\NewsBean.java&&......\......\......\...\....\...\....\crawler\Crawler.java&&......\......\......\...\....\...\....\.......\LinkDB.java&&......\......\......\...\....\...\....\.......\LinkFilter.java&&......\......\......\...\....\...\....\.......\LinkParser.java&&......\......\......\...\....\...\....\.......\NewsToDB.java&&......\......\......\...\....\...\....\.......\Queue.java&&......\......\......\...\....\...\....\db\ConnectionManager.java&&......\......\......\...\....\...\....\servlet\GetNewsServlet.java&&......\......\......\...\....\...\....\SohuNews.java&&......\......\......\...\lib\commons-codec-1.3.jar&&......\......\......\...\...\commons-httpclient-3.1.jar&&......\......\......\...\...\commons-logging-1.0.4.jar&&......\......\......\...\...\htmllexer.jar&&......\......\......\...\...\htmlparser.jar&&......\......\......\test\com\sohu\SohuNewsTest.java&&......\......\......\web\detail.jsp&&......\......\......\...\index.jsp&&......\......\......\...\META-INF\context.xml&&......\......\......\...\readme.txt&&......\......\......\...\WEB-INF\web.xml&&......\......\......\build\web\WEB-INF\classes\com\sohu\bean&&......\......\......\.....\...\.......\.......\...\....\crawler&&......\......\......\.....\...\.......\.......\...\....\db&&......\......\......\.....\...\.......\.......\...\....\servlet&&......\......\......\.....\...\.......\.......\...\sohu&&......\......\......\.....\...\.......\.......\com&&......\......\......\src\java\com\sohu\bean&&......\......\......\...\....\...\....\crawler&&......\......\......\...\....\...\....\db&&......\......\......\...\....\...\....\servlet&&......\......\......\build\web\WEB-INF\classes&&......\......\......\.....\...\.......\lib&&......\......\......\src\java\com\sohu&&......\......\......\build\web\META-INF&&......\......\......\.....\...\WEB-INF&&......\......\......\src\java\com&&......\......\......\test\com\sohu&&......\......\......\build\web&&......\......\......\nbproject\private&&......\......\......\src\conf&&......\......\......\...\java&&......\......\......\...\lib&&......\......\......\test\com&&......\......\......\web\META-INF&&......\......\......\...\WEB-INF&&......\......\......\build&&......\......\......\dist&&......\......\......\nbproject&&......\......\......\src&&......\......\......\test&&......\......\......\web&&......\......\zhizhu&&......\zhizhu&&zhizhu
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 一个简单的网络爬虫,可以设置一些网站作为首选链接,爬取网页上的文字内容。
&[] - 自己写的java爬虫源码
&[] - 本资料提供的htmlparser的学习方法,里面有抓取网页正文,抽取标题和链接等方法,读者须自行下载htmlparser.jar包方能运行
&[] - 网络爬虫蜘蛛Java源码,智能网罗信息,你懂的。
&[] - Drive develop for Linux
&[] - 输入卷积核h和信号长度N,生成卷积矩阵H
conv(h,x, full ) == blur_mtrx1(h,length(x), full )*x
支持‘full’‘valid’和‘circular
&[] - 用java编写的一个简单的搜索引擎实例,代码简洁
&[] - 输入完整url地址如:
作为起始url进行网页爬取
&[] - java爬虫 网页分析代码,分析网页得到所需的资源
&[] - 该爬虫自动收集网络上(指定网站)指定的信息,存入MYSQL数据库,并可下载到磁盘,默认的搜索是“武汉大学”

我要回帖

更多关于 java 网络爬虫demo 的文章

 

随机推荐