V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lazybios
V2EX  ›  Python

定向爬虫规则管理问题

  •  
  •   lazybios · 2014-02-19 19:37:35 +08:00 · 3316 次点击
    这是一个创建于 3913 天前的主题,其中的信息可能已经有所发展或是发生改变。
    情景:针对目标网站内容,写了特定的爬虫脚本,爬取规则是通过正则之类的字符串匹配,比较得到的

    问题:如果目标网站更改了前端代码,还要重新分析改写脚本规则,这些规则都是硬编码到脚本中的,有没有优雅高效的方法来管理规则,做到规则与脚本逻辑分离 或者是否有其它好的的爬法?

    另外如果有相关可参考的开源代码麻烦贴一下地址 :)
    6 条回复    1970-01-01 08:00:00 +08:00
    tonyseek
        1
    tonyseek  
       2014-02-19 22:41:50 +08:00   ❤️ 1
    [这样写](http://brownant.readthedocs.org/en/0.1.4/userguide/quickstart.html#the-declarative-demo)如何?

    Brownant 是我在维护的的一个项目,解决的主要就是定向爬虫。爬虫规则通过定制的 `PipelineProperty` 描述性地写在类里,和 Homebrew 的那种方式有点像。
    lazybios
        2
    lazybios  
    OP
       2014-02-19 23:46:41 +08:00
    @tonyseek
    我好研究研究去
    有次不知道在哪里看到一个帖子,说的大概是用xml配置,来解决的,每次规则过时以后只需要调整xml就可以了,感觉这样比较省事,当时没有写这方面的程序,所以只记住了点大概思路,后面的细节就断篇了...
    family
        3
    family  
       2014-02-20 07:13:41 +08:00 via iPhone
    配置在数据库
    yakczh
        4
    yakczh  
       2014-02-20 11:29:19 +08:00
    下载,抽取链接放到队列里这都是一样的,不一样的是抽取数据部分,这部分可以把解析代码当成配置数据, 根据不同站点不同url规则动态载入, python怎么样传入一段字符串的代码eval动态执行 ,不过这比较丑陋,有没有优雅一点的方法?
    yaotian
        5
    yaotian  
       2014-02-20 12:12:01 +08:00
    配置文件,抓不到了,收到邮件。所有规则都配置文件,修改配置文件,自动生效。见我的lumeinv.com (上班期间要小心)
    tonyseek
        6
    tonyseek  
       2014-02-21 10:32:59 +08:00
    @lazybios XML 或者其他方式的静态配置写定向爬虫貌似不是很灵活,比如某个标签的内容需要过滤掉一些文本,或者在出现某些文本的时候抛出指定的异常,静态的配置就完全无力了。又或者你需要抓取的网站用 AJAX 来载入部分信息,你可以就要在一次抓取中多次走 请求-抽取 的过程,这也是为何我之前遇到类似需求,没有直接用 Scrapy 的原因。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:23 · PVG 05:23 · LAX 13:23 · JFK 16:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.