wiseflow/client/backend/scrapers
2024-04-08 17:58:29 +08:00
..
__init__.py initial commit 2024-04-07 09:37:47 +08:00
general_scraper.py more strictly crawler filter 2024-04-08 17:58:29 +08:00
README.md abort selenium 2024-04-07 21:40:26 +08:00
simple_crawler.py more strictly crawler filter 2024-04-08 17:58:29 +08:00

这个文件夹下可以放置对应特定信源的爬虫注意这里的爬虫应该是可以解析信源文章列表url并返回文章详情dict的

专有爬虫配置

写好爬虫后将爬虫程序放在这个文件夹并在__init__.py下的scraper_map中注册爬虫类似

{'www.securityaffairs.com' :   securityaffairs_scraper}

其中key就是信源地址value是函数名

爬虫应该写为函数形式,出入参约定为:

输入:

  • expiration datetime的date.date()对象,爬虫应该只抓取这之后(含这一天)的文章
  • existings[str], 数据库已有文章的url列表爬虫应该忽略这个列表里面的url
  • logger主流程的logger对象如果爬虫需要单独logger这个logger接收了可以不用

输出:

  • [dict]返回结果列表每个dict代表一个文章格式如下 [{'url': str, 'title': str, 'author': str, 'publish_time': str, 'content': str, 'abstract': str, 'images': [Path]}, {...}, ...]

注意publish_time格式为"%Y%m%d" 如果爬虫抓不到可以用当天日期

另外title和content是必须要有的

通用爬虫

我们这里提供了一个通用爬虫,该爬虫可以智能信源文章列表, 接下来对于每一个文章url会先尝试使用 gne 进行解析如果失败的话再尝试使用llm进行解析。

通过这个方案,可以实现对大多数普通新闻类、门户类信源的爬取。

然而我们依然强烈建议用户自行写专有爬虫或者委托开发,以实现更加理想且更加高效的爬取。