Tip:本文仅供学习与交流,切勿用于非法用途!!!
根据上图,可以看出此条件下一共有13805辆车,可是下面的页码选项卡只能到50页。
我试了一下,将index调整为51,数据同第50页。所以我们爬前50页数据就好了。每页有40辆车,一共2000条数据,不妨碍咱们说事情对吧~
获取同样用到requests库。
页面都截成这种程度了,是不是很贴心哎呀,User-Agent没截取到,反正就在下面,你们自己获取就好了。逃~
解析依然使用的是PyQuery库。查看下网页源码
只需要获取那个ul,然后获取所有的a标签就好了,有了现价和原价,我们还可以计算出车辆的折扣。
这次储存,使用mongo,一个非常优秀的NoSQL数据库。
frompymongoimportMongoClientclient=MongoClient('127.0.0.1',27017)db=client.pjjltcollection=db.guazicollection.insert_many(datas)在MongoClient中填入链接和端口,得到一个客户端client。再从客户端获取pjjlt数据库。从数据库中拿到guazi集合。然后一口气塞进去。
看一看结果,嗯,没错,刚好两千条。
我们得到了数据,先看下这2000辆车都是什么价位区间的。生成一张价位-数量关系图。用到了matplotlib库。
好了好了,这里不是说脸长了,不要打我,辣条君的意思是你很好看就完事了。逃~
接下来看下都是卖的什么车。这里将名称分词之后,形成词云。利用了jieba和wordcloud库。
importjiebafromwordcloudimportWordClouddefcreate_wordCloud(datas):names=[]fordataindatas:names.append(data.get('name').replace('',''))big_name=''.join(names)wl=jieba.lcut(big_name,cut_all=True)wl_space_split=''.join(wl)wc=WordCloud('simhei.ttf',background_color='white',#背景颜色width=1000,height=600).generate(wl_space_split)wc.to_file('%s.png'%'SUV')首先利用上一节的get_mongo_datas从mongo中获取车辆信息。然后通过将名称去空格再拼接在一起,得到一个超长的名称串,再利用jieba分词,将这个大字符串分词得到一个列表。cut_all=True参数是完全分词,就是词特别特别多那种了。然后利用WordCloud生成词云图片。simhei.ttf参数同样是处理中文名称转化问题的。然后让我们期待已久的图片闪亮登场吧!
噗。。
我们是不是需要屏蔽一些词。。将代码改成如下:
defcreate_wordCloud(datas):names=[]fordataindatas:names.append(data.get('name').replace('',''))big_name=''.join(names)wl=jieba.lcut(big_name,cut_all=True)wl_space_split=''.join(wl)stopwords=['豪华','豪华型','豪华版','自动','精英','舒适','舒适版','进口','OL','运动','运动版','舒适型','VI','OT','CVT']wc=WordCloud('simhei.ttf',background_color='white',#背景颜色width=1000,height=600,stopwords=stopwords).generate(wl_space_split)wc.to_file('%s.png'%'SUV2')增加停止词参数stopwords,可以屏蔽一些词。然后继续生成图片。emmm,好像屏蔽的还不够。屏幕前帅气美丽的你可以接着屏蔽,但是大体已出现一些车辆名称了哈。什么日产啊、马自达啊、本田啊、奔驰什么的。呵,辣条君全买不起~快去搜搜三手五菱宏光几个钱。
又写完了一个爬虫,新get到了mongo储存,还有一些可视化的知识,满足的说~
喜欢的小伙伴,点个赞再走吧,辣条君会继续输出爬虫博客的,谢谢各位帅气美丽智慧大大们的观看和支持。