网页新闻抓取(Java程序中本发明文档构造一个FileWriter文件对象的说明图)
优采云 发布时间: 2022-04-18 07:10网页新闻抓取(Java程序中本发明文档构造一个FileWriter文件对象的说明图)
等标注Html新闻网页,可实现新闻列表标题内容、链接地址、发布时间的精准抓取,对抓取结果进行分类,保存在本地txt。为实现上述目的,本发明采用如下技术方案:(1)创建存储对象:在本地服务器建立一个txt空文档,在Java程序中为该txt文档构造一个FileWriter文件对象,并设置Encoding格式,避免文档存储过程中出现乱码,实现文档的可写性;(2)解析对象:使用Jsoup解析器解析新闻列表页URL的Html,以及创建一个 Document 对象,获取解析后的文本 Content;进一步分析 Document 对象,提取目标内容:继续使用Elements对象的select方法或getElementsByClass/Tag方法,对对象中各个元素节点的数据进行细化识别,区分标题内容、链接地址和发布时间;在Elements对象中定义几个字符串分别获取标题内容、链接地址和发布时间,实现新闻列表信息的提取。(4)使用流文件写入的方法,将标题内容、链接地址和发布时间按一定顺序保存到txt,并使用for循环导出所有列表信息,实现对整个新闻的A爬取列表页面。提取目标内容:继续使用Elements对象的select方法或getElementsByClass/Tag方法,对对象中各个元素节点的数据进行细化识别,区分标题内容、链接地址和发布时间;在Elements对象中定义几个字符串分别获取标题内容、链接地址和发布时间,实现新闻列表信息的提取。(4)使用流文件写入的方法,将标题内容、链接地址和发布时间按一定顺序保存到txt,并使用for循环导出所有列表信息,实现对整个新闻的A爬取列表页面。区分标题内容、链接地址和发布时间;在Elements对象中定义几个字符串分别获取标题内容、链接地址和发布时间,实现新闻列表信息的提取。(4)使用流文件写入的方法,将标题内容、链接地址和发布时间按一定顺序保存到txt,并使用for循环导出所有列表信息,实现对整个新闻的A爬取列表页面。区分标题内容、链接地址和发布时间;在Elements对象中定义几个字符串分别获取标题内容、链接地址和发布时间,实现新闻列表信息的提取。(4)使用流文件写入的方法,将标题内容、链接地址和发布时间按一定顺序保存到txt,并使用for循环导出所有列表信息,实现对整个新闻的A爬取列表页面。
以某企业<以@k17@的通知公告>为例,如图2所示,一种基于Jsoup的网页新闻列表抓取保存方法,包括以下步骤: 步骤1:创建空新闻。 txt文档本地或服务器上,用Java为txt文档构造一个FileWriter对象,并将其编码格式设置为“UTF-8”,避免乱码;第二步:输入通知公告的新闻列表页的url,使用Jsoup.connect("url")。get()方法解析页面的Html,得到一个Document对象dom,其中Documentdom=Jsoup.connect("url").get(); 第三步:使用select选择器的方法提取Document对象,返回Elements集合,或者使用getElementsByClass/Tag的方法提取指定的样式和标签内容,同样返回Elements对象es;选择方法是 Elementses=dom.select("table"); getElementsByClass/Tag 方法是指 Elementses=dom.getElementsByTag("table"); 第四步:定义几个字符串title、linkHref、datetime,获取Element对象中的title、链接地址和发布时间;Step 5:根据es tr, td 中是否有多个字符串来判断。
如果存在,使用for循环通过Stringtitle/datetime=es.get(i).select("td").get(j).text()获取标题内容或发布时间,并传递StringlinkHref=es。 get(i).getElementsByTag("a").attr("abs:href") 获取链接地址;其中i代表行数tr,j代表列数td;第六步:如Step(4),如果没有的话,直接根据Stringtitle/datetime=es.getElementsByTag("").text()获取标题或时间,通过StringlinkHref=获取链接es.getElementsByTag("a").attr("href"); 第七步:将得到的title、linkHref、datetime按照一定的顺序和格式封装起来,封装的结果通过fwrite的方式不断写入txt .write(); 第八步:程序运行后,使用flush清除缓存并关闭文件,实现本页新闻列表的抓取和保存过程。当前页面 1 2 3 当前页面 1 1 2 3