1、前言
最近小姐姐工作需要,需要爬取天猫某店的全部商品,正好小哥学习了Python几个月,就答应上手试试!结果第一道题就难住了,天猫登陆需要账号密码和验证码!!!虽然知道可以通过模拟和Session操作,但是,始终是新手开车,还没有学习那么高深,感觉会走很多弯路!!另外,也想想,有没有什么更简单的方法???
不出意思,还真发现啦!天猫的手机版可以不用登陆,全部数据访问!!!就这样~
开始吧!
2、遇到的坑点
本文主要是在 利用Python爬虫爬取指定天猫店铺全店商品信息 - 晴空行 - 博客园 这个大哥的基础上,踩坑填坑,然后增加自己一些数据要求~
- 坑一
1 | File "/Users/HTC/Documents/Programing/Python/WebCrawlerExample/WebCrawler/Tmall_demo.py", line 63, in get_products |
writer.writerows
没有找到这个’titleUnderIconList’字段,这个字段应该是天猫的接口后来返回的数据,在代码里只能删除掉:
1 | del product['titleUnderIconList']del product['titleUnderIconList'] |
- 坑二
1 | File "/Users/HTC/Documents/Programing/Python/WebCrawlerExample/WebCrawler/Tmall_demo.py", line 65, in get_products |
熟悉的人儿,看到python3与python2的区别,就知道,'ascii' codec can't encode
就是编码问题,问题就出来这里writer.writerows
, python3处理、解析或转换和保存时,最好都指定一下使用 utf-8
编码吧,特别是遇到中文的情况!
最后指定编码用utf-8:
1 | with open(self.filename, 'a', encoding="utf-8", newline='') as f: |
- 坑三
1 | 035009803B0 |
下图图片失败的提示,原因是天猫接口返回的商品数据如下:
1 | { |
不带协议名字!!!不知道是什么时候的历史留下的坑点吧!!!大厂也是有坑的!!
3、总结
具体的代码,可参考我的Github代码:
代码详细的解析还是参考这位大神的 利用Python爬虫爬取指定天猫店铺全店商品信息 - 晴空行 - 博客园,写的非常的详细!
整体来说,因为天猫的商品数据通过js来获取,所以比较容易获取到数据,而不用大量的爬取页面的商品,这个很赞!所以,爬虫这技术活,有很多方法,能找到好的方法,才是爬虫的最高境界啊!加油~
代码
python就是利害,一百行代码就搞定!
1 |
|
参考
- iHTCboy/WebCrawlerExample: 网页爬虫实践示例
- 利用Python爬虫爬取指定天猫店铺全店商品信息 - 晴空行 - 博客园
- Hopetree/E-commerce-crawlers: 电商网站爬虫合集,淘宝京东亚马逊等
- 如有疑问,欢迎在评论区一起讨论!
- 如有不正确的地方,欢迎指导!
> 注:本文首发于 [iHTCboy's blog](https://iHTCboy.com),如若转载,请注来源