总结:厉害了!实战爬取全网5000部手机|上篇
优采云 发布时间: 2020-09-04 20:42太棒了!在实战中在网络上爬行5000部手机|第1部分
我相信每个人都需要购买手机,那么互联网上有多少个手机品牌?哪款手机具有最高的性价比,最高的评级,最大的屏幕,最好的硬件等,我们都想知道。最好自己爬下整个手机网络,然后慢慢学习。至少在购买手机时可以参考。 文章结合了爬虫,代理和数据库的多种知识,这非常好。
环境:Python 3. 5
使用的库:操作系统,重新,随机,时间,sqlite3,请求,BeautifulSoup,泡菜
使用的工具:Pycharm
1. 网站分析
在这里,我们正在爬中关村在线网站。我们必须首先仔细分析目标网站,以确定要使用的技术:
网页1:手机信息简介页面
1141273是此红色框中的电话ID
页面2:手机概述介绍页面
随意选择手机的连接,然后进入其概述页面
在此页面上,我想获取手机的名称和品牌,以及几种价格(请参阅报价和商人报价),还希望获取图片,参数和评论页面的网址
从以上三张图片可以看出,图片的url结构,参数和查看页面都需要获取1167243(手机ID)之前的数字字符串(pre-id)。第3页:手机参数页面
从图中可以看出,电话具有九个属性(基本参数,屏幕,网络...),大属性对应于几个小属性,小属性对应于特定的内容。我希望在抓取该页面时,构造一个大型的属性字典
attrs = {'基本属性':{'上市时间':'','移动类型':''),}网页4:移动评论页面
在评论页面上,获取评论者的数量,平均分数和详细分数,好坏块2.程序框架
对于代码,我们可以使用Py2或Py 3.,因为使用的库都是py2和py3,让我们看一下整个框架图:
1.手机类别
由于采集的手机信息太多,从手机的价格,品牌,参数,屏幕,网络,硬件,*敏*感*词*,服务支持,评估等方面,不止采集有十几种信息,所以将其封装到类中是一种更好的方法
self.attribute是一个大字典,字典设置字典的数据结构
2.数据库类
数据库存储了超过4900部手机的所有信息。为了方便查询和处理,我们设计了12个独立的表,但每个表都以手机ID为键,因此联合查询也非常方便。
查看代码。实际上,该代码类似于我们之前介绍的sqlite3教程
由于数据库的介绍,尤其是SQL语法,我们讨论了很多,因此在这里不再一一赘述。如果您有兴趣,可以看看历史文章(数据库介绍系列文章),以下是基本的手机信息表和得分表两个表
我们从网页中检索数据并将其存储在数据库中。所有数据都是从mobilePhoneList获得的,该列表存储了每部手机的信息。
查看12个表中的电话表:
总共有4921部手机,我突然发现仍然有许多老牌手机仍具有网站的销售结论:
需要源代码的学生,请留言