Python爬虫实践——Pandora首饰数据爬取(一) - Go语言中文社区

Python爬虫实践——Pandora首饰数据爬取(一)


一月份的时候花了一个月时间学习了Python爬虫,刚好家里领导有业务上的需求,于是趁机提出帮其爬取Pandora网站上首饰的相关数据,顺便作为练手项目。

一、任务目标

最初的目标如下:

1、爬取并下载官网上所有首饰的图片,并按分类保存到电脑;

2、将首饰的相关数据(名称、编号、价格等)作为图片的名称;

在了解了网站结构之后,提出更高要求:

3、尽可能爬取更多数据,如价格要爬取内地、香港、澳洲三地的价格;

4、将首饰的更详细数据写入excel表格,方便检索;

为了更有系统性,同时练习已学到的内容,决定增加以下目标:

5、将爬取的数据先放入Mongodb数据库,再在数据库写入到本地文件。

二、开始行动

1、熟悉网站

最初的目标是爬Pandora澳洲的官网,但是研究后发现Pandora所有的网站结构都是一样的,于是决定先研究一下内地的,毕竟英语菜鸡。

一开始看网站上首饰的数据不多,正暗喜任务简单时候去看一下源代码,才发觉所有的数据都是由JS控制的!而且不同首饰详情页的网址是由那个首饰的编号决定的,也就是说直接爬网站的话根本取不到任何数据。此时我的心里是卧槽的,这么难臣妾这个编程菜鸟做不到啊,差点放弃。

幸好JS数据爬取在学爬虫的过程中正好是一个难点,好(xin)学(teng)的(qian)我当时还是花了不少心思去理解的。努力了一下果然找到了存放数据的json的url,还是所有的数据!(内心独白:红红火火恍恍惚惚何厚铧)而且那个数据还大到每次我想解析它的时候浏览器就会崩溃。不要紧,直接预览也能看到结构,就不管了。

这个url的数据太齐全了,于是我决定直接从这里爬取数据就行了,根本不需要涉及到官网。但问题也来了,正因为这个json数据太齐全了,很多网站上已经没有卖的商品都有保存。不过这个问题很好解决,仔细研究就会发现,没有卖的商品在数据里对应的价格是0,所以只要做一个判断就能作出区分。而且源代码里也说明了图片URL的结构,所以有了这个数据,也能凑出图片的地址了。

自此,算是完全了解了网站的结构,同时也制定了初步的爬取计划了。

2、初步试爬

由于还是新手,在正式编写爬虫之前我决定先尝试爬取一个数据看是否成功。

作为菜鸟的我果然马上就遇到问题了。一般我在百度搜到的json都是直接一个字典数据,格式是这样的:

{'a':'b','c':[1,2]}

但是我要解析的那个url格式是这样的:

dataCollection({"data":{'a':'b','c':[1,2]},"d":"e"})

由于我有限的水平以及对json约等于0的认识,我压根不知道为什么会有这种区别,也不懂得怎么搜索出答案(烦请知道的人在评论中指点一二)!本着结果导向的原则,我决定直接用字符串的方法将首尾的字符去掉。虽然方式感觉有点粗暴,但从结果来看的话毕竟是解决了问题。

经过半天时间的折腾,终于成功爬到了第一件首饰的资料!(未完待续)

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/90b664cbbb4e
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-09 08:32:55
  • 阅读 ( 2052 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢