V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · 3569 views
    This topic created in 3598 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   ·   Solana   ·   775 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    ♥ Do have faith in what you're doing.