mirror of
https://github.com/TeamWiseFlow/wiseflow.git
synced 2025-01-23 19:00:26 +08:00
.. | ||
__init__.py | ||
general_scraper.py | ||
README.md | ||
simple_crawler.py |
这个文件夹下可以放置对应特定信源的爬虫,注意这里的爬虫应该是可以解析信源文章列表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进行解析。
通过这个方案,可以实现对大多数普通新闻类、门户类信源的爬取。
然而我们依然强烈建议用户自行写专有爬虫或者委托开发,以实现更加理想且更加高效的爬取。