Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup礼貌政策+;DNS解析程序_Java_Dns_Jsoup_Information Retrieval - Fatal编程技术网

Java Jsoup礼貌政策+;DNS解析程序

Java Jsoup礼貌政策+;DNS解析程序,java,dns,jsoup,information-retrieval,Java,Dns,Jsoup,Information Retrieval,我正在用java实现一个搜索引擎,我正在使用JSOUPAPI来制作爬虫组件,有两件事我还没有完全理解。首先:要获取网页,即从wikipedia站点,我调用Jsoup.connect()函数,如下所示 private static final String agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) " + "AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari

我正在用java实现一个搜索引擎,我正在使用JSOUPAPI来制作爬虫组件,有两件事我还没有完全理解。首先:要获取网页,即从wikipedia站点,我调用Jsoup.connect()函数,如下所示

private static final String agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) "
        + "AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1";

Document htmlDocument = Jsoup.connect(url).userAgent(agent).get();
有些爬虫的用户代理在站点上被阻止,因为它是在robots.txt文件上建立的。在这种情况下,如果我将connection Requeer的用户代理定义为web浏览器,则该站点允许访问其任何页面。我想知道这是怎么可能的;假设Jsoup获取robots.txt文件并根据其中的规则对站点进行内部爬网,那么这真的实现了吗?如果是这样,情况如何?背后的逻辑是什么

第二件事是DNS解析程序。我已经在本主题中了解到,当系统属性
sun.net.http.allowerPrictedHeaders
设置为
true
时,我知道它允许Jsoup将GET请求的头更改为使用IP而不是URL。这是正确的还是逻辑是其他的?就像我的第一个问题,内部发生了什么


如果有人能回答其中至少一个问题,我非常感谢。同时,我将研究github中的Jsoup代码,看看是否有什么东西通过了。

为什么不使用像or这样的合适的爬虫程序呢。他们遵循robots.txt,加强礼貌等。。。StormCrawler使用JSoup解析HTML文档。

实际上,我不知道这些爬虫中的任何一个。。。我就像在搜索一些东西来帮助我在网络上爬行,而Jsoup是我找到的第一个。我也知道有几种更好的方法可以做到这一点,比如不使用java,但由于时间不够,我无法学习一种新的语言来做到这一点。但我会试着看一看。谢谢