【发布时间】:2017-10-04 09:44:45
【问题描述】:
我正在尝试使用 Jsoup 创建一个爬虫,它将...
- 转到一个网页(具体来说,一个像 https://docs.google.com/spreadsheets/d/1CE9HTe2rdgPsxMHj-PxoKRGX_YEOCRjBTIOVtLa_2iI/pubhtml 这样的 google 表格公开发布的页面)并收集在每个单元格中找到的所有 href url 链接。
- 接下来,我希望它转到找到该页面的每个单独的 url,并抓取该 url 的标题和主图像。
- 理想情况下,例如,如果 google 表格页面上的 url 是特定的 Wikipedia 页面和 Huffington Post 文章,它会打印出如下内容:
链接:https://en.wikipedia.org/wiki/Wolfenstein_3D
标题:德军总部 3D
图片:https://en.wikipedia.org/wiki/Wolfenstein_3D#/media/File:Wolfenstein-3d.jpg链接:http://www.huffingtonpost.com/2012/01/02/ron-pippin_n_1180149.html
标题:Ron Pippin 的神话档案包含一切的历史(照片)
图片:http://i.huffpost.com/gen/453302/PIPPIN.jpg(请原谅网址中的空格。显然我不希望爬虫添加空格并分解网址......堆栈溢出只是不允许我在这个问题中发布更多链接)
到目前为止,我已经使用以下代码让 jsoup 为第一步工作(从初始 url 中提取链接):
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class mycrawler {
public static void main(String[] args) {
Document doc;
try {
doc = Jsoup.connect("https://docs.google.com/spreadsheets/d/1CE9HTe2rdgPsxMHj-PxoKRGX_YEOCRjBTIOVtLa_2iI/pubhtml").get();
Elements links = doc.select("a[href]");
for (Element link : links) {
System.out.println(link.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
我现在无法弄清楚如何创建爬虫的第二个方面,它循环遍历每个链接(可能是可变数量的链接)并从中找到标题和主图像。
【问题讨论】: