有个爬虫的疑问

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

现在遇到的问题是:

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

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

我现在有点犹豫:
各位帮我解解?
3111 次点击
所在节点    Python
6 条回复
xsseroot
2016-06-24 11:47:10 +08:00
将商圈的 url 和 name 做个 hash ,写到 redis 中每次判断下不就行了。
jatesun
2016-06-24 14:27:58 +08:00
可以放到线程安全的 hash 表里
chendajun
2016-06-24 14:31:15 +08:00
把抓过的 URL md5 一下,写到 redis , mongo 等。每来一个 URL 就与库里比较一下
hwsdien
2016-06-24 17:49:41 +08:00
把采集过的 url 放进 redis, 每次采集判断一下。
Yc1992
2016-06-24 18:22:05 +08:00
@xsseroot 头像已暴露
practicer
2016-06-29 14:23:29 +08:00
尽管让重复的 item 插进数据库,活干完后 SELECT DUMPS 掉

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

https://www.v2ex.com/t/287995

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

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

© 2021 V2EX