Tag: web crawler

Java Web Crawler库

我想为实验制作一个基于Java的网络爬虫。 我听说如果这是你第一次使用Java制作一个Web爬虫是可行的方法。 但是,我有两个重要问题。 我的程序如何“访问”或“连接”到网页? 请简要说明一下。 (我理解从硬件到软件的抽象层的基础知识,这里我对Java抽象感兴趣) 我应该使用哪些库? 我想我需要一个用于连接网页的库,一个用于HTTP / HTTPS协议的库,以及一个用于HTML解析的库。

使用java进行Web爬网(使用Ajax / JavaScript的页面)

我对这个网络抓取非常新。 我正在使用crawler4j来抓取网站。 我通过抓取这些网站来收集所需的信息。 我的问题是我无法抓取以下网站的内容。 http://www.sciencedirect.com/science/article/pii/S1568494612005741 。 我想从上述网站抓取以下信息(请查看附带的屏幕截图)。 如果您观察到附加的屏幕截图,则它有三个名称(在红色框中突出显示)。 如果单击其中一个链接,您将看到一个弹出窗口,该弹出窗口包含有关该作者的全部信息。 我想抓取该弹出窗口中的信息。 我使用以下代码来抓取内容。 public class WebContentDownloader { private Parser parser; private PageFetcher pageFetcher; public WebContentDownloader() { CrawlConfig config = new CrawlConfig(); parser = new Parser(config); pageFetcher = new PageFetcher(config); } private Page download(String url) { WebURL curURL = new WebURL(); curURL.setURL(url); PageFetchResult fetchResult = null; try { […]

如何从Java获取网页的源代码

我只想从Java检索任何网页的源代码。 到目前为止我找到了很多解决方案,但我找不到适用于以下所有链接的代码: http://www.cumhuriyet.com.tr?hn=298710 http://www.fotomac.com.tr/Yazarlar/Olcay%20%C3%87ak%C4%B1r/2011/11/23/hesap-makinesi http://www.sabah.com.tr/Gundem/2011/12/23/basbakan-konferansta-konusuyor# 对我来说,主要问题是某些代码检索网页源代码,但缺少代码。 例如,下面的代码不适用于第一个链接。 InputStream is = fURL.openStream(); //fURL can be one of the links above BufferedReader buffer = null; buffer = new BufferedReader(new InputStreamReader(is, “iso-8859-9”)); int byteRead; while ((byteRead = buffer.read()) != -1) { builder.append((char) byteRead); } buffer.close(); System.out.println(builder.toString());

Selenium等待加载Ajax内容 – 通用方法

是否有一种通用的方法让Selenium等到所有ajax内容都加载完毕? (不依赖于特定的网站 – 所以它适用于每个ajax网站)

HtmlUnit仅显示GWT App的主机HTML页面

我正在使用HtmlUnit API向我的GWT应用添加抓取工具支持,如下所示: PrintWriter out = null; try { resp.setCharacterEncoding(CHAR_ENCODING); resp.setContentType(“text/html”); url = buildUrl(req); out = resp.getWriter(); WebClient webClient = webClientProvider.get(); // set options WebClientOptions options = webClient.getOptions(); options.setCssEnabled(false); options.setThrowExceptionOnScriptError(false); options.setThrowExceptionOnFailingStatusCode(false); options.setRedirectEnabled(true); options.setJavaScriptEnabled(true); // set timeouts webClient.setJavaScriptTimeout(0); webClient.waitForBackgroundJavaScript(20000); // ajax controller webClient.setAjaxController(new NicelyResynchronizingAjaxController()); // render page HtmlPage page = webClient.getPage(url); webClient.getJavaScriptEngine().pumpEventLoop(timeoutMillis); out.println(page.asXml()); webClient.closeAllWindows(); } … 然而; […]