广州市手机网站建设怎么样,内黄县住房和城乡建设局网站,建一个网站难不难,重庆建企业网站项目起源开发这个项目#xff0c;源自于我在知网发现了一篇关于自动化抽取新闻类网站正文的算法论文——《基于文本及符号密度的网页正文提取方法》这篇论文中描述的算法看起来简洁清晰#xff0c;并且符合逻辑。但由于论文中只讲了算法原理#xff0c;并没有具体的语言实现…项目起源开发这个项目源自于我在知网发现了一篇关于自动化抽取新闻类网站正文的算法论文——《基于文本及符号密度的网页正文提取方法》这篇论文中描述的算法看起来简洁清晰并且符合逻辑。但由于论文中只讲了算法原理并没有具体的语言实现所以我使用 Python 根据论文实现了这个抽取器。并分别使用今日头条、网易新闻、游民星空、观察者网、凤凰网、腾讯新闻、ReadHub、新浪新闻做了测试发现提取效果非常出色几乎能够达到100%的准确率。项目现状在论文中描述的正文提取基础上我增加了标题、发布时间和文章作者的自动化探测与提取功能。最后的输出效果如下图所示目前这个项目是一个非常非常早期的 Demo发布出来是希望能够尽快得到大家的使用反馈从而能够更好地有针对性地进行开发。本项目取名为抽取器而不是爬虫是为了规避不必要的风险因此本项目的输入是 HTML输出是一个字典。请自行使用恰当的方法获取目标网站的 HTML。本项目现在不会将来也不会提供主动请求网站 HTML 的功能。如何使用项目代码中的GeneralNewsCrawler.py提供了本项目的基本使用示例。本项目的测试代码在test文件夹中本项目的输入 HTML 为经过 JavaScript 渲染以后的 HTML而不是普通的网页源代码。所以无论是后端渲染、Ajax 异步加载都适用于本项目。如果你要手动测试新的目标网站或者目标新闻那么你可以在 Chrome 浏览器中打开对应页面然后开启开发者工具如下图所示在Elements标签页定位到标签并右键选择Copy-Copy OuterHTML如下图所示当然你可以使用 Puppeteer/Pyppeteer、Selenium 或者其他任何方式获取目标页面的JavaScript渲染后的源代码。获取到源代码以后通过如下代码提取信息from GeneralNewsCrawler import GeneralNewsExtractorextractor GeneralNewsExtractor()html 你的目标网页正文result extractor.extract(html)print(result)对大多数新闻页面而言以上的写法就能够解决问题了。但某些新闻网页下面会有评论评论里面可能存在长篇大论它们会看起来比真正的新闻正文更像是正文因此extractor.extract()方法还有一个默认参数noise_mode_list用于在网页预处理时提前把评论区域整个移除。noise_mode_list的值是一个列表列表里面的每一个元素都是 XPath对应了你需要提前移除的可能会导致干扰的目标标签。例如观察者网下面的评论区域对应的Xpath 为//div[classcomment-list]。所以在提取观察者网时为了防止评论干扰就可以加上这个参数result extractor.extract(html, noise_node_list[//div[classcomment-list]])test文件夹中的网页的提取结果请查看result.txt。已知问题目前本项目只适用于新闻页的信息提取。如果目标网站不是新闻页或者是今日头条中的相册型文章那么抽取结果可能不符合预期。可能会有一些新闻页面出现抽取结果中的作者为空字符串的情况这可能是由于文章本身没有作者或者使用了已有正则表达式没有覆盖到的情况。Todo使用一个配置文件来存放常量数据而不是直接 Hard Code 写在代码中。允许自定义时间、作者的提取Pattern自动识别新闻列表页优化内容提取速度测试更多新闻网站……交流沟通项目地址https://github.com/kingname/GeneralNewsExtractor转载自原文https://www.cnblogs.com/xieqiankun/p/generalnewsextractor.html作者青南