第一次爬虫记录,爬取商品基础数据以及图片

需求爬取商品价格、销量、评论、收藏量、款式等基本数据以及详情图。遇见的主要问题以及解决方式对于一个从来没写过爬虫的人来说很多地方都是很困惑的。而且公司要求两三天就得出结果并用于生产,再加上自己轻微的代码洁癖,综合起来还是有些压力的。 所以也没时间去学习一些爬虫框架或者道友们的一些实现方案,回头来看,都是些常规操作。遇见的第一个问题:最开始抽取所有的商品URL,要爬取的网站的数...
摘要由CSDN通过智能技术生成

需求

爬取商品价格、销量、评论、收藏量、款式等基本数据以及详情图。

遇见的主要问题以及解决方式

对于一个从来没写过爬虫的人来说很多地方都是很困惑的。而且公司要求两三天就得出结果并用于生产,再加上自己轻微的代码洁癖,综合起来还是有些压力的。
所以也没时间去学习一些爬虫框架或者道友们的一些实现方案,回头来看,都是些常规操作。

写完之后,发觉这并不是一篇好文章,朋友们在这篇文章中可能获得不了太多有价值的信息
这篇文章其实不错

第一个问题

最开始抽取所有的商品URL,要爬取的网站的数据是Ajax动态加载的。所以直接代码获取链接数据,只会返回最初的静态页面。里面几乎不会有什么可用的信息。

你可以下载一个”toggle JavaScript”的插件,启动后点击该插件,可以看到哪些显式是通过JS异步加载过来的(是点击该插件,而不是仅仅启动就可以)

比如,未使用该插件时:

这里写图片描述

点击该插件过后,会发现很多数据没有加载出来,这里加载出来的都是最初的静态页面。往往都是“item.html“

这里写图片描述

要解决这个问题,主要得找到是哪个js脚本返回的数据,找到后用jousp解析html。我们需要一个个的去查看,看是哪个地方返回了我们需要的数据

这里写图片描述

数据往往都是以JSON的形式返回的,找到该入口后,接下来就是解决翻页。
我这里是直接在URL尾部添加&pageNo=,是可行的。

            Document doc = null;
            try {
                // 解决UnsupportedMimeTypeException:ignoreContentType(true)
                doc = Jsoup.connect(entry.getValue()).headers(SpiderHeader.headers).ignoreContentType(true).timeout(30000).get();
            } catch (IOException e) {
                e.printStackTrace();
            }

后来发现请求淘宝移动端API可以基本满足我的需求,故没有继续慢慢的踩Ajax异步加载的坑
API中可能会有

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值