问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java jsoup 爬虫 怎么防止重复爬取

发布网友 发布时间:2022-04-24 07:07

我来回答

3个回答

热心网友 时间:2022-04-21 04:44

正好最近在学习这方面的内容。

两种思路:

可以将当前爬取的url存在一个list中作登记,在下一次开始爬子链接的时候进行比对,如果已经存在在list中则跳过,如果不存在那么继续爬

可以将所有的url网络先遍历一遍存在list中,然后根据list而不是再次访问子链接url进行爬取,在url存入list的过程中进行查重处理

顺便为了方便控制。建议设置爬取深度,在一定深度内进行爬取。

热心网友 时间:2022-04-21 06:02

方法/步骤 本次经验是通过导入外部Jar进行对网页数据进行抓取,以下是我工程的分布图。 本例子中是使用Jquery进行处理页面事件 页面展示 后台是在siteproxy.jsp中进行处理 5 最后将这其中需要的几个文件部署在此工程中去

热心网友 时间:2022-04-21 07:36

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class JsoupTest {

static String url = "http://www.sogou.com/web?sut=1374&lkt=1%2C1386588673481%2C1386588673481&ie=utf8&sst0=1386588674552&p=40040100&dp=1&w=01019900&dr=1&_asf=www.sogou.com&_ast=1386589056&query=java网页爬虫&page=1";

public static void main(String[] args) {
Document doc = readUrlFist(url);
write(doc);
}
public static void write(Document doc) {
try {

FileOutputStream fos=new FileOutputStream("C:\\Documents and Settings\\Administrator\\桌面\\a.html");
OutputStreamWriter osw=new OutputStreamWriter(fos);
BufferedWriter bw=new BufferedWriter(osw);
bw.write(doc.toString());
bw.flush();
fos.close();
osw.close();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}

}
public static Document readUrlFist(String url) {
Document doc = null;
Connection conn = Jsoup.connect(url);
conn.header(
"User-Agent",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 Googlebot/2.1");
try {
doc = conn.timeout(200 * 1000).get();
} catch (IOException e) {
e.printStackTrace();
if ((e instanceof UnknownHostException)
|| (e instanceof SocketTimeoutException)) {
doc = readUrlFist(url);
}

}
return doc;
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
臭豆腐变黄还可以吃吗哪些人不宜吃臭豆腐 大河票务:2021-2022五月天跨年演唱会安排 西安科技大学建筑与土木工程学院概述 西安科技大学建筑与土木工程学院专业设置 西安科技大学,西安石油大学的土木工程怎么样 西安哪个学校的土木工程比较好 做寿司的烤紫菜是不是很讲究。。哪里有得买。。什么牌子的比较好... 登山看风景的心情简短 求个致辞的漂亮开头 ...开头“对联”:比如:金虎归山硕果累,玉兔东升岁月新。 项目可行性研究报告需要提供哪些资料 jsoup 能否加载异步的数据 加载的url 中含有异步的 展现的数据,怎么用... Jsoup或者HttpClient抓取web页面时,data,userAgent,cookie(),timeout(),post();为什么要设置这些? jsoup解析页面报错 项目可行性研究报告如何写 光是执行一个java类中的方法出现Read timed out 项目可行性研究报告范本 java 爬虫网站 报错延时 Read time out 小蛮腰纯甄酸奶瓶,能做什么手工? 喝完的畅轻酸奶瓶可以做什么手工? 云南野生蜂蜜是真是假? 求云南正宗土蜂蜜 云南纯天然蜂蜜多少钱一斤? 云南土蜂蜜好吗?云南临沧土蜂蜜怎么样? 云南哪里的野生蜂蜜最好 云南这边的蜜蜂这段时间有蜜吗 云南哪里盛产蜂蜜? 云南蜂蜜品牌有哪些? 云南白塔蜂业有限公司怎么样? 云南蜂蜜哪家最好 最近做java网页爬虫用jsoup 写了一个方法main执行正常 放在action里调用这个方法就不正常求解 我再用jsoup写爬虫时,想要获取页面的所有子链接代码如下: 小野丽莎苏州演唱会的票价是多少? java.net.SocketTimeoutException: Read timed out求解决 求问苏州迷笛音乐节的票价是多少? 张学友2011苏州演唱会票价怎么样 直播带货如何推动经济发展? java socket 超时 异常 求解决 java.net.SocketTimeoutException: Read timed out 林宥嘉苏州演唱会门票多少钱,怎么买票? Jsoup 抓取网页,字符是乱码,怎么转换?跪求拜托了各位 谢谢 java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native M 恋爱的犀牛苏州演出票价具体是? Jsoup 请求链接含中文乱码 java HttpURLConnection 设置超时没有效果,该怎么处理 小野丽莎苏州演唱会的票现在还有哪里可以买? 问下李荣浩11月9日苏州演唱会的门票在哪里可以买? Java:这两种设置超时时间有什么区别? 关于几个苏州景点的票价 设计一个JAVA程序,下载由URL指定的网页的源代码,找出其中所有的超链接... 苏州门票