手可摘星辰——摘星 霜天 搜索与算法技术 - 引擎开发组 03/08/11
爬虫面临的问题与瓶颈 1. 路径黑洞 * 京东, yoka 等筛选框。 * 网站 URL 规则模糊。 * 死链的发现,数据的更新 2.JS/Ajax * 京东书籍的价格 JS 展示 * 当当描述的 Ajax 动态加载 3. 图片价格文字 * 噪音问题 * 图片描述 4. 系统的一些瓶颈,存储,动态 IP 03/08/11
摘星 SCRAPY+MYSQL+RADIS+WEBKIT Part 1 03/08/11
Webkit 介绍 1.PYQT ,一个轻量级的基于 webkit 内核的 Python 调用的浏览器。 2. 通过实例化一个 webkit 对象,设置加载参数,然后去请求一个 URL 等待请求完毕时,可以从主框架( mainframe )里取得加载完毕后的 HTML 源码。这个源码基本上和 chrome 浏览器解析出来的一致,通过设置关闭图片请求,弹窗可以加快加载速度。 3. 问题:基于 ajax 的异步请求目前还无法解决。 03/08/11
Scrapy 介绍 Scrapy  是一个基于  Twisted 框架用 Python 编写的单机爬虫系统。 1. 调度 :调度的改进通过 redis 在线下计算。 2. 下载 :基于插件形式的下载,可以自定义添加下载中间件,处理方法。 3. 管道 :可以把解析的字段定位到输出的接口里。这里只有针对详情页用到了 pipeline 。 03/08/11
Scrapy 介绍 03/08/11
摘星架构 03/08/11 Scrapy Scrapy Scrapy Scrapy Scrapy WebkitServer MySQL DB Scrapy OfflineServer Redis server Redis server Schdule Django Internet
摘星 Redis 存储架构 03/08/11
摘星 OfflineServer 03/08/11 Field_list Scrapy MySQL DB Field_set OfflineServer TFS OCR
摘星 WebkitServer 03/08/11 WebkitServer browser browser browser browser browser http://127.0.0.1:9090/ s?url=xxxxx
Redis 介绍 1. Redis : 一个高性能的基于 Key-value 的存储系统。 2. 数据类型: Strings , Lists , Sets , Hash 3. 功能: Sharding , master/slave 复制, VM , AOF 3 . 性能:写的速度 110000 次 /s ,读的速度 81000 次 /s (官方数据) 4. 应用:摘星链接库存储引擎,摘星调度系统存储引擎 03/08/11
摘星链接库存储 1. 部署: 8 台 24G  阿里云机器(复用) 2. 状态 :  目前  5.2G/ 台 daemonize yes pidfile /home/admin/spider/redis_url_db/run/master_redis.pid port 6380 timeout 300 loglevel verbose logfile /home/admin/spider/redis_url_db/logs/master_redis.log databases 16 save 900 1 rdbcompression yes dbfilename /home/admin/spider/redis_url_db/data/master_dump.rdb dir /home/admin/spider/redis_url_db/ appendonly no appendfsync everysec vm-enabled yes vm-swap-file /home/admin/spider/redis_url_db/data/master.swap vm-max-memory 8gb vm-page-size 32 vm-pages 134217728 vm-max-threads 8 glueoutputbuf yes hash-max-zipmap-entries 64 hash-max-zipmap-value 512 activerehashing yes 03/08/11
摘星链接库存储 1. 部署: 8 台 24G  阿里云机器(复用) 2. 状态 :  目前  2.9G/ 台 detail:1882113 list:12760922 detail + list + new = 93638507 03/08/11
摘星 一期调度策略 03/08/11 key detail_finish_set list_finish_set list_refresh_url_candidate_list detail_refresh_url_candidate_list candidate_detail candidate_list url_store
摘星 二期调度策略 03/08/11 list_finish_set list_refresh_url_candidate_list list_new_url_candidate_list url_store module
淘宝摘星前端页面 120.0.28.114 03/08/11
网站配置列表 03/08/11
网站配置 界面 03/08/11
实时数据显示 03/08/11
小小展望与总结 03/08/11
Thank you for listening~ 小敏 Email : [email_address] 03/08/11

摘星

  • 1.
  • 2.
    爬虫面临的问题与瓶颈 1. 路径黑洞* 京东, yoka 等筛选框。 * 网站 URL 规则模糊。 * 死链的发现,数据的更新 2.JS/Ajax * 京东书籍的价格 JS 展示 * 当当描述的 Ajax 动态加载 3. 图片价格文字 * 噪音问题 * 图片描述 4. 系统的一些瓶颈,存储,动态 IP 03/08/11
  • 3.
  • 4.
    Webkit 介绍 1.PYQT,一个轻量级的基于 webkit 内核的 Python 调用的浏览器。 2. 通过实例化一个 webkit 对象,设置加载参数,然后去请求一个 URL 等待请求完毕时,可以从主框架( mainframe )里取得加载完毕后的 HTML 源码。这个源码基本上和 chrome 浏览器解析出来的一致,通过设置关闭图片请求,弹窗可以加快加载速度。 3. 问题:基于 ajax 的异步请求目前还无法解决。 03/08/11
  • 5.
    Scrapy 介绍 Scrapy 是一个基于 Twisted 框架用 Python 编写的单机爬虫系统。 1. 调度 :调度的改进通过 redis 在线下计算。 2. 下载 :基于插件形式的下载,可以自定义添加下载中间件,处理方法。 3. 管道 :可以把解析的字段定位到输出的接口里。这里只有针对详情页用到了 pipeline 。 03/08/11
  • 6.
  • 7.
    摘星架构 03/08/11 ScrapyScrapy Scrapy Scrapy Scrapy WebkitServer MySQL DB Scrapy OfflineServer Redis server Redis server Schdule Django Internet
  • 8.
  • 9.
    摘星 OfflineServer 03/08/11Field_list Scrapy MySQL DB Field_set OfflineServer TFS OCR
  • 10.
    摘星 WebkitServer 03/08/11WebkitServer browser browser browser browser browser http://127.0.0.1:9090/ s?url=xxxxx
  • 11.
    Redis 介绍 1.Redis : 一个高性能的基于 Key-value 的存储系统。 2. 数据类型: Strings , Lists , Sets , Hash 3. 功能: Sharding , master/slave 复制, VM , AOF 3 . 性能:写的速度 110000 次 /s ,读的速度 81000 次 /s (官方数据) 4. 应用:摘星链接库存储引擎,摘星调度系统存储引擎 03/08/11
  • 12.
    摘星链接库存储 1. 部署:8 台 24G 阿里云机器(复用) 2. 状态 : 目前 5.2G/ 台 daemonize yes pidfile /home/admin/spider/redis_url_db/run/master_redis.pid port 6380 timeout 300 loglevel verbose logfile /home/admin/spider/redis_url_db/logs/master_redis.log databases 16 save 900 1 rdbcompression yes dbfilename /home/admin/spider/redis_url_db/data/master_dump.rdb dir /home/admin/spider/redis_url_db/ appendonly no appendfsync everysec vm-enabled yes vm-swap-file /home/admin/spider/redis_url_db/data/master.swap vm-max-memory 8gb vm-page-size 32 vm-pages 134217728 vm-max-threads 8 glueoutputbuf yes hash-max-zipmap-entries 64 hash-max-zipmap-value 512 activerehashing yes 03/08/11
  • 13.
    摘星链接库存储 1. 部署:8 台 24G 阿里云机器(复用) 2. 状态 : 目前 2.9G/ 台 detail:1882113 list:12760922 detail + list + new = 93638507 03/08/11
  • 14.
    摘星 一期调度策略 03/08/11key detail_finish_set list_finish_set list_refresh_url_candidate_list detail_refresh_url_candidate_list candidate_detail candidate_list url_store
  • 15.
    摘星 二期调度策略 03/08/11list_finish_set list_refresh_url_candidate_list list_new_url_candidate_list url_store module
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    Thank you forlistening~ 小敏 Email : [email_address] 03/08/11

Editor's Notes

  • #2 自我介绍 + 高效沟通的