Skip to content

一个通用的爬虫应用, 只需要配置解析模板,无需编写代码, 对框架和代码没有侵入性

License

Notifications You must be signed in to change notification settings

wang1365/intellij-spider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

intellij-spider

一个通用的爬虫应用, 只需要配置解析模板,对框架和代码没有侵入性,无需编写代码。

环境

使用说明

抓取一个网站内容时不需要写代码,只需要配置模板即可,下面以抓取 寿光蔬菜网-蔬菜资讯 中的所有文章(包括翻页的)为例 说明如何抓取

创建抓取应用程序

每一个新的应用放在apps/下面, 例如 寿光蔬菜网 apps/sgsc/app.py

给应用配置解析模板

解析模板用于解析HTTP请求返回的内容HTML/JSON等,目前仅支持正则表达式解析,每一类链接应该配置一个对应的解析模板, 以寿光蔬菜网应用为例,在template/下面配置了2个模板:

  • sgsc_page
    template/sgsc_page.py 用于解析 文章列表页 , 列表页首页和其他分页都是用这个模板解析, 解析结果中包含所有文章正文对应的链接
  • sgsc_article
    template/sgsc_article.py 用于解析 文章正文 , 列表页首页和其他分页都是用这个模板解析, 解析结果中包含文章标题、来源、日期、正文内容等等。

配置解析模板支持模板测试功能,测试使用template/util.pytest函数即可,具体可参考示例模板。

如何启动抓取应用

  • 切换当前目录到intellij-spider/intellij-spider/
  • 立即抓取使用: python -m apps.sgsc.app true
  • 每天凌晨2点定时抓取使用: python -m apps.sgsc.app false 02:00

抓取结果

  • 抓取结果存储在文件中,按照模板每天存储一个文件,存储位置参考config.pyOUTPUT_DIR

反扒

  • 缓存避免重抓,抓取时使用缓存存储每个抓取的链接结果,多次抓取同一个链接不会重复网络请求,缓存有效期为1个自然日
  • 支持代理设置,参考config.pyProxyMapping, 可以对不同的URL(正则匹配)配置不同的代理
  • 支持gevent异步抓取,同步抓取使用多线程,工作线程数可配置

About

一个通用的爬虫应用, 只需要配置解析模板,无需编写代码, 对框架和代码没有侵入性

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published