一、问题汇总:
1、python中的__str__和__repr__方法在类编写中的应用,两者都是用来显示字符串,而对于3__str__方法来说是为了显示给用户,后一个方法主要是显示给开发人员。两者相似,如果没有重新编写这俩函数的话打印类的对象会返回对象类型和存储地址。对“懒惰的__repr__用法是:__repr__=__str__”
2、python中的@property用法,是一个装饰器方法,用来动态将方法加为实例对象可以设置的属性,如果将类方法装饰为一个属性时,那么说明这个属性可以进行读取,但是还不能进行设置,如果在加上@property.setter装饰之后,这个属性就可以在实例对象中进行修改,也就是说这个方法可以读也可以写(更改)。
@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。
3、爬虫运用到的数据库安装:数据库软件+可视化软件的安装。MongoDB、Redis(非关系型数据库)、MySQL(关系型数据库)。刚从知乎中了解到菲关系型数据库是阉割了传统关系型数据库acid特性使得数据可更能便捷操作,同时加强了对非结构化数据的支持,他它的名字也是特别有意思,not only SQL就是说我不只是sql,我有的他没有(歪解!!!)。两者的区别:我们知道非关系型数据库存储的形式一般为key-value键值对的存储形式,各个对象之间耦合性很低,可读性好。而对于关系型数据有严格的asci特性。两者运用场景不同对于金融等交易业务安全性和数据格式化程度要求高的场景来说适合关系型数据库,但是对于互联网企业来说,高速变更的业务数据要求更快的存取数据,简化操作,这样来说菲关系型数据库就有着分布式,更容易存取非结构数据等优势。总之,两者的优缺点相对,两者的应用场景不同,两者的应用需求当然也就不尽相同。
#后面系统学习时候在进行相应的补充
4、刚开始学习爬虫时教程给的爬去的网站链接都可以直接爬到多需要的数据,随着学习的深入,发现真正有价值的数据不会直接显示给用户,或者说直接体现在网页代码中,同时相关网站开发人员为了保护网站和数据部署了相应的反爬虫机制,初步了解到反爬虫机制主要是应用三种:检测网站请求头,检测用户行为,数据隐藏。前两种检测到直接封禁ip,这时候我们可以采取添加请求头到请求中,如果ip被封禁,那么可以通过创建代理IP池,爬取网上免费提供的IP地址,存入到数据库中,然后定时更换IP,模拟多用户异地登录的场景,再去部署我们的爬虫。对于第三种来说,不能获取隐藏的信息需要我们进行解析,这个后面在进行补充。
5、还是python中的os模块的用法,可以从官方网站上进行查看官方文档,虽然读的速度很慢但是很容易理解。网站链接:python官方文档
二、明日工作:
1、实现爬取淘宝美食的实战。感觉得用到三小时。
2、建立博客初级模型,今晚找找教程。有时间的话,计划6月底之前,博客能够正式上线。