目前项目里用的都是 sql where 条件拼接的,爬虫一来很容易挂了,有什么解决方案么。直接 cache key 会比较多
1
gouchaoer 2017-05-04 22:05:13 +08:00 via Android
商品分类以及排序推荐那是非常困难的任务,没团队很难搞定的
|
2
undeflife 2017-05-04 22:11:02 +08:00
这种筛选是给人用的 而你需要爬虫抓取的是最终的产品页 给爬虫一个单独的入口 暂时可以缓解你这个爬虫一来就挂的情形
|
3
wudanyang 2017-05-04 22:51:25 +08:00
solr
|
6
pierre1994 2017-05-05 00:22:13 +08:00
es 做不了吧
|
7
jarlyyn 2017-05-05 00:36:27 +08:00
爬虫挂了,不是应该先缓存 /限制访问频率么?
key 多也不需要你收官算吧? |
8
terranboy 2017-05-05 00:42:38 +08:00
把数据扁平化 ES 其实也是这个意思
|
9
ihuotui 2017-05-05 01:06:44 +08:00 via iPhone
静态化 freemaker ftl
|
10
byfar 2017-05-05 09:00:50 +08:00 1
爬虫一来很容易挂了,你确定问题出在数据库上?数据库单独放一实例上或使用云服务?
Elasticsearch 不用的话,可以考虑一下 sphinx ( http://sphinxsearch.com/ ) 当然还是要先定位问题,找到需求点再改造。 |
11
yanzixuan 2017-05-05 09:04:17 +08:00
|
12
byfar 2017-05-05 10:23:07 +08:00 1
@yanzixuan sphinx 支持动态索引 ( http://sphinxsearch.com/docs/current.html#rt-indexes )
另外静态也可以改造成近时时的,看需求选择。 Elasticsearch 没有试过,不敢评论,不过我知道很火。 |
13
walkershow 2017-05-05 10:35:29 +08:00
我们网站都用 sphinx,快,省内存
|
14
jianzhiyao 2017-05-05 10:49:33 +08:00
if($http_user_agent ~* "spider")
|
15
hiboshi OP @jianzhiyao 这样不能防止恶意爬虫
|
16
undeflife 2017-05-05 12:36:15 +08:00
@hiboshi 恶意爬虫就 ban 掉, 设置请求频率 用运维手段是可以处理的
你现在碰到的问题跟实现方式(拼接查询条件)并没有太大关系,爬虫一来就挂,是为什么挂? 数据库连接数太小还是查询效率太低? 如果不能找出问题真正的原因,换一种解决方案可能还是挂. |
17
hiboshi OP @undeflife 都存在,目前一部分 是想完善这部分代码段,我们的商品比较多 几十万种,爬虫部分也在封 IP 至于限制频率目前在研究 apache 的相关模块。
|
20
sunchen 2017-05-05 12:55:00 +08:00
属性全部扁平化,类似 tag,至于动态排序那就只能硬抗了
|