首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

babybox-信息抓取

好久没有写爬虫了,有点生疏;今天来练练手复习一下。

抓取网址:

这是一个幼儿产品官网,里面罗列这家公司的产品和价格:

到了具体价格页,分了很多层级:

首先是大类

其次是小类

最后才是产品以及价格

调试抓取:

提取大类:

输出结果:

不完整网址的列表,可以用join方法。

进入小类界面:

重置shell,提取小类:

输出结果:

还是一个不完整网址的列表。

进入价格页面:

重置shell,提取产品:

审查元素:

产品名称还是在center标签之下,直接将链接href改为文本text()。

提取价格:

所有center - b标签 - span标签下的文本。

输出结果:

验证产品和价格数量:

别忘记目录提取:

但是这个目录明显不对,审查元素之后发现其他的div之中也有a标签,所以咱们取出第二个标签下的所有文本,这里需要用到xpath的string(.)功能:

爬虫代码

启动scrapy项目:

定义爬虫类:

第一级网址:

for的最后有个extract():太长不截图了。

第二级网址:

详情页提取:

type的写法太长,单独拿出来:

types = response.xpath('//div[@class="breadcrumbs"]//div[2]').

xpath('string(.)').extract()

运行爬虫:

运行结果:

我们发现价格总是在产品的下面一个位置,为什么?因为抓取网页的时候,xpath分别提取了2次center标签。

审查元素:

清理数据

导入模块:

读取数据:

path是我自己baby文件路径。

价格上移一位:

删除原始价格:

取出产品不为空的行:

删除重复数据

导出数据:

查看结果:

验证价格:

准确……

自己动手试试吧!

关于框架的细节,请见以往的文章:

‍‍‍‍赶集网-深入抓取‍‍‍‍

‍‍‍‍天天基金--抓取‍‍‍‍

‍‍‍597人才网 -- 抓取‍‍‍

‍‍‍‍手机网段信息抓取‍‍‍‍

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180306G0UF1L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券