轻型履带

sbcrawler的Python项目详细描述


sbcrawler

light weight crawler

轻量级的爬虫框架sbcrawler

写这个框架的动机

  1. 平时写爬虫过程中,发现通常不需要什么高大上的异步、并发、分布式等功能。
  2. 小需求对防止被封,中断继续,日志进度等方面有更多重复性的代码。
  3. sbcrawler就是实现一个最简单的爬虫框架,让你可以专注于写内容抽取逻辑。

特点

  • 单进程,非异步
  • 断点续爬
  • 错误日志记录

用法示例

# -*- coding: utf-8 -*-fromsbcrawlerimportCrawlerclassMyCrawlerExample(Crawler):start_url="https://xxx.xxx.com/xxx/"# 起始种子urlallowed_domain="https://xxx.xxx.com/"# 限制域,要带httpdefextract_links(self,html,task):# 抽取链接 加到爬取任务列表iftask.depth==0ortask.depth==1:html=html.find('.module_summary',first=True)iftask.depth==2:html=html.find("#in_list_main > table > tr:nth-child(6)",first=True)iftask.depth==3:returnsuper().extract_links(html,task)defextract_content(self,html,task):iftask.depth==3:title=html.find('#title',first=True)article=html.find('#article',first=True)return{'title':title.full_text,'article':article.full_text}if__name__=="__main__":crawler=MyCrawlerExample()crawler.start()

安装

pip install git+https://github.com/ffteen/sbcrawler.git

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接usb到uart设备到安卓设备>3.1   可以强制Php中的web应用程序与Java中的桌面应用程序一起工作吗?   java为什么自定义系统类加载器不工作?   数组在Java中解析具有多个分隔符的字符串   PMD Java 8德米特定律   JavaSpringMVC表单验证不适用于嵌套的复杂类型   让Eclipse Java组织导入以使用Google checkstyle   java Appium:无法创建新会话   java如何在数组中声明新字段   java如何解决“无法初始化类org.apache.cassandra.config.DatabaseDescriptor”?   java AsyncTask创建socket   java向@CreatedBy添加更多信息   如何在ubuntu中运行包含大量jars依赖项的java文件   java如何使用<s:select>标记并在中休眠来填充下拉列表?   java获取错误:找不到符号变量“level”和“next_level_button”   javaweb应用中基于UI的ajax显示代码流   Java长到MySql   java JvisualVM:奇怪的应用程序行为   ubuntu将Java程序的输出结果保存到一个文件中