一、前言
二、知识要求三、过程分析1.观察主页面和每个电脑界面的网址2.寻找每个电脑的id3.找到存放电脑的价格和评论数的信息4.爬取信息的思路四、urllib模块爬取京东笔记本电脑的数据、并对其做一个可视化实战五、可视化结果1.运行结果2.可视化结果
Python资源共享群:626017123
一、前言
作为一个程序员,笔记本电脑是必不可少的,我这里对京东上的前2页的笔记本的好评论数,价格,店铺等信息进行爬取,并做一个可视化,根据可视化的图,大家可以清晰的做出预测,方便大家购买划算的电脑。当然,我这里前2页的数据是远远不够的,如果大家想要预测的更精准一些,可以改一下数字,获取更多页面的数据,这样,预测结果会更精确。
二、知识要求
- 掌握python基础语法
- 异常处理
- 熟悉urllib模块或者其他爬虫模块
- 会抓包分析
三、过程分析
1.观察主页面和每个电脑界面的网址
(1)观察具体界面的网址,我们可以猜测,具体每个界面都有一个id,通过构造网址https://item.jd.com/【id】.html,就可以得到具体每个界面的网址。
(2)观察主界面的网址,我们发现page=的属性值就是具体的页码数,通过构造page的值,我们可以实现自动翻页爬取信息。对主界面网址一些不必要的信息剔除,最后得到主界面翻页的网址规律https://list.jd.com/list.html?cat=670,671,672&page=【页码数】
同过以上的分析,我们可以看见,获取信息的关键就是每个电脑的具体id代号,接下来,我们的任务就是要找到每个电脑的id。
2.寻找每个电脑的id
(1)首先,看看网页源代码中是否会有每个电脑的id
我们再进入到刚刚搜索的哪个电脑名称的具体界面,发现,确实是他的id
(3)根据id附件的一些属性值,唯一确定所有电脑id
根据class="gl-i-wrap j-sku-item"属性值定位,发现,唯一确定60个id,数了一下界面上的电脑,一页确实是60个电脑,所以,电脑的id获取到了。
(4)同理,根据<div class="p-name">属性值获取具体每个电脑的网址和电脑名,这样我们连具体每个电脑的网址都不用构造了,直接可以获取。
3.找到存放电脑的价格和评论数的信息
(1)通过到网页源代码中去找,发现完全找不到,所以,我猜测这些信息隐藏在js包中。
(2)打开fiddler抓包工具,进行抓包分析。
可以看见,这些信息确实是在js包里面,复制该js包的网址,然后分析。
(3)分析有如下结论:
这里,我也抓到了存放店铺的js包,但是,这个js包的地址每次有一部分是随机生成的,所以,获取不到每台的电脑的店铺名。但是,我有每台电脑的具体网址,而该界面里面有该电脑的店铺,所以,我可以访问每台电脑的具体界面去获取到店铺消息。
4.爬取信息的思路
(1)先爬每页的信息
(2)再爬每页中每台电脑的价格、电脑名和评论数,以及每台电脑的网址
(3)爬取每台电脑的页面,获取店铺信息
(4)获取完所有页面信息后,做一个可视化
四、urllib模块爬取京东笔记本电脑的数据、并对其做一个可视化实战
爬虫文件:(建议大家边看边敲一遍,更加有利于学习)
1# -*- cod