(网络爬虫)如何从新闻网站获取新闻文章的文本

时间:2016-06-24 03:29:34

标签: java php python web jsoup

我要从新闻网站上获取该文字 我必须获得1k网站内容

链接如下: http://www.dcfever.com/news/readnews.php?id=16727

此网站发布每条最新消息,新网址在ID中添加1

  

readnews.php?ID = 16727

所以,下一个网址将是

  

readnews.php?ID = 16728

问题是我想把文字从16000扫描到17000

如何在Java中实现

Jsoup?或其他网络爬虫?

谢谢

3 个答案:

答案 0 :(得分:0)

您也标记了python。在这里查看beautifulsouphttps://www.crummy.com/software/BeautifulSoup/bs4/doc/

答案 1 :(得分:0)

Jsoup是一个HTML解析器,可以帮助您抓取和解析HTML页面。如果你已经知道网站导航的模式,那么Jsoup就是好的。但是,如果您想要抓取网站的所有内容,最好利用某些抓取工具框架,例如ScrapyCrawler4j

首先,您需要确定从页面中抓取的内容。例如。主题,作者,内容。使用css选择器提取您想要的内容,例如subject:

@Grab('org.jsoup:jsoup:1.9.2')
org.jsoup.nodes.Document doc = org.jsoup.Jsoup.connect("http://www.dcfever.com/news/readnews.php?id=16727").get();
String subject = doc.select("body > div.site_wrapper > div.canvas > div:nth-child(5) > div > div.col-md-left.col-lg-left.read_article > h1").text();

您可以在groovy控制台中运行上面的代码,并获得如下结果:

世界首部中片幅無反相機 Hasselblad X1D 登場

答案 2 :(得分:0)

看看StormCrawler。实现您所描述的内容应该非常简单,大多数组件都是用Java实现的。您可以逐步生成URL列表并将其传递给MemorySpout或将它们放在文件中并使用FileSpout。它可以在Apache Storm集群上以分布式模式运行,但由于您只处理一个站点,因此可伸缩性不是问题,您可以在本地模式下运行它。

或者Apache Nutch也可以是一个选项,但你可能会发现StormCrawler使用起来更简单,更容易定制。