有个爬虫的疑问

2016 年 6 月 24 日
 hippoboy
我现在在写一个爬取全市餐厅的爬虫,精确到商圈
入口是:全市餐厅的列表页
我目前的做法是:
1.获取每个区所有餐厅的 url(是一个列表页)
2.通过区 url 列表页获取下属商圈的 url
3.同时将市-区-商圈,单独一个 mysql 表建立了联动
4.将商圈的 url 和 name 转 json 放入 redis 队列
5.多线程 lpop 出来之后获取商圈所需要的信息

现在遇到的问题是:

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

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

我现在有点犹豫:
各位帮我解解?
3489 次点击
所在节点    Python
6 条回复
xsseroot
2016 年 6 月 24 日
将商圈的 url 和 name 做个 hash ,写到 redis 中每次判断下不就行了。
jatesun
2016 年 6 月 24 日
可以放到线程安全的 hash 表里
chendajun
2016 年 6 月 24 日
把抓过的 URL md5 一下,写到 redis , mongo 等。每来一个 URL 就与库里比较一下
hwsdien
2016 年 6 月 24 日
把采集过的 url 放进 redis, 每次采集判断一下。
bytenoob
2016 年 6 月 24 日
@xsseroot 头像已暴露
practicer
2016 年 6 月 29 日
尽管让重复的 item 插进数据库,活干完后 SELECT DUMPS 掉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/287995

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX