推荐学习书目
› 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
hippoboy
V2EX  ›  Python

有个爬虫的疑问

  •  
  •   hippoboy · Jun 24, 2016 · 3866 views
    This topic created in 3747 days ago, the information mentioned may be changed or developed.
    我现在在写一个爬取全市餐厅的爬虫,精确到商圈
    入口是:全市餐厅的列表页
    我目前的做法是:
    1.获取每个区所有餐厅的 url(是一个列表页)
    2.通过区 url 列表页获取下属商圈的 url
    3.同时将市-区-商圈,单独一个 mysql 表建立了联动
    4.将商圈的 url 和 name 转 json 放入 redis 队列
    5.多线程 lpop 出来之后获取商圈所需要的信息

    现在遇到的问题是:

    再一次重新爬取,我没法区分商圈内哪些餐厅以前爬取过

    leader 的意思是修改我的逻辑
    不使用 redis,直接存 mysql,加个标志
    每次用 select top 取出来,然后操作完再 update 标志,记录爬过
    然后每次从 mysql 取,遇到爬过的就略过

    我现在有点犹豫:
    各位帮我解解?
    6 replies  •  2016-06-29 14:23:29 +08:00
    xsseroot
        1
    xsseroot  
       Jun 24, 2016
    将商圈的 url 和 name 做个 hash ,写到 redis 中每次判断下不就行了。
    jatesun
        2
    jatesun  
       Jun 24, 2016 via iPhone
    可以放到线程安全的 hash 表里
    chendajun
        3
    chendajun  
       Jun 24, 2016
    把抓过的 URL md5 一下,写到 redis , mongo 等。每来一个 URL 就与库里比较一下
    hwsdien
        4
    hwsdien  
       Jun 24, 2016
    把采集过的 url 放进 redis, 每次采集判断一下。
    bytenoob
        5
    bytenoob  
       Jun 24, 2016
    @xsseroot 头像已暴露
    practicer
        6
    practicer  
       Jun 29, 2016
    尽管让重复的 item 插进数据库,活干完后 SELECT DUMPS 掉
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1001 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 17:58 · PVG 01:58 · LAX 10:58 · JFK 13:58
    ♥ Do have faith in what you're doing.