爬虫抓取产品数据

声明:仅供学习参考,严禁用于非法或者侵权操作

一,首先要计划好

1.抓取分类
2.抓取分类的每页产品链接
3.抓取每页的产品链接
4.抓取每个产品
尽量的细分,一开始一个大循环,很容易把程序卡死.分而治之,稳多啦

二,选择爬虫工具

这里介绍两种

1.phpspider

优点:速度快,文档齐全,简单容易上手
缺点:只支持静态页面
composer require owner888/phpspider

2.PhantomJs

优点:功能强大,可以抓取js渲染后的数据
缺点:速度慢,抓取出来的数据,和实际数据,会有差异注意坑(可能是因为js渲染了两次引起的)
缺点:只支持静态页面
在抓取产品详情的时候,我发现属性为什么一直无法抓取呢?
原来属性是用js异步渲染的,这里只好使用PhantomJs
composer require jaeger/querylist-phantomjs

三,设计数据库,使用mysql队列

mysql队列更加直观,还能看到是否抓取成功,适合大量储存
1.分类url表 (里面有一个待抓取url)
2.页码url表page_list(里面有一个待抓取url)
3.产品url表product_list(里面有一个待抓取url)
4.产品表

三,执行头三步,生成产品队列

通过定时器,一步步生成产品url表,大约有几十万条数据

4,抓取产品

可以建10台虚拟机,用定时任务开始跑了,注意分库
根据公司产品特点抓取产品数据

            //初始化
            $ql = QueryList::getInstance();
            // 安装时需要设置PhantomJS二进制文件路径
            $ql->use(PhantomJs::class, '/usr/local/bin/phantomjs');
            //获取整个页面数据
            $ql->use(PhantomJs::class, '/usr/local/bin/phantomjs', 'browser');
            $producView = $ql->browser($produc)->getHtml();
            //使用phpspider选择器
            $produc = selector::select($producView, "//div[contains(@class,'contents')]", "xpath");

xpath选择器,真好用,老师再也不担心我不会写正则了
(正则精通帮助还是很大)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,880评论 0 3
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,695评论 0 7
  • 你可能会把 NodeJS 用作网络服务器,但你知道它还可以用来做爬虫吗? 本教程中会介绍如何爬取静态网页——还有那...
    张嘉夫阅读 5,227评论 3 51
  • 上网原理 1、爬虫概念 爬虫是什麽? 蜘蛛,蛆,代码中,就是写了一段代码,代码的功能从互联网中提取数据 互联网: ...
    riverstation阅读 8,686评论 1 2
  • 文/悠然 每个人都害怕夜幕降临的孤寂,却又不想放弃追逐梦想的都市。无论在任何地方,你都渴望归属于它,并从中获取温暖...
    婉悦悠然阅读 827评论 32 14

友情链接更多精彩内容