2019年3月8日

摘要: 建立好项目以后,在项目文件内scrapy会搭好框架,我们只需要按照框架设置. 先定义Item 它是保存爬取到的数据的容器,其使用方法和python的字典类似,并且提供了额外保护机制来避免拼写错误导致的未定义字段错误. 然后编写爬虫类spider, spider是用户编写用于从网站上爬取数据的类.其包 阅读全文

posted @ 2019-03-08 21:46 心酒 阅读(154) 评论(0) 推荐(0) 编辑

摘要: 创建项目时报错ModuleNotFoundError: No module named 'cryptography.hazmat.bindings._constant_time' pip install -I cryptography 使用这个命令就搞定了 阅读全文

posted @ 2019-03-08 14:16 心酒 阅读(431) 评论(0) 推荐(0) 编辑

摘要: 使用Python自带的PIP安装Scrapy需要的支持包太多了,很麻烦. 使用了Anaconda直接 conda install Scrapy.出了一堆问题 anaconda安装scrapy,使用 conda install scrapy 命令。安装完成后在命令行执行scrapy提示报错,如图: W 阅读全文

posted @ 2019-03-08 14:15 心酒 阅读(220) 评论(0) 推荐(0) 编辑

摘要: 爬虫一般在网页Post里找数据,注意大部分网页都已经反爬,会出现主要对象加密的问题,比如百度翻译就影藏了输入的内容,有道翻译进行了MD5加密,不过广大网友是给力,只要把网址里的_o去掉就又可以了 参考小甲鱼的实例,我试着爬了下百度贴吧的图片,还挺方便. import urllib.requestim 阅读全文

posted @ 2019-03-08 13:35 心酒 阅读(220) 评论(0) 推荐(0) 编辑

2019年3月5日

摘要: 举个例子: 现在很多网站都搞REST API,比如新浪微博、豆瓣啥的,调用API的URL类似: http://api.server/user/friends http://api.server/user/timeline/list 如果要写SDK,给每个URL对应的API都写一个方法,那得累死,而且 阅读全文

posted @ 2019-03-05 22:43 心酒 阅读(191) 评论(0) 推荐(0) 编辑

摘要: __getitem__ 实例虽然能作用于for循环,看起来和list有点像,但是,把它当成list来使用还是不行,要表现得像list那样按照下标取出元素,需要实现__getitem__()方法 __getattr__ 正常情况下,当我们调用类的方法或属性时,如果不存在,就会报错。要避免这个错误,除了 阅读全文

posted @ 2019-03-05 22:40 心酒 阅读(149) 评论(0) 推荐(0) 编辑

摘要: __slots__ 为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性. __str__ 用这个命令定义方法,可以返回想要的字符串,但是容易看到实例内部重要的数据, 直接显示变量调用的不是__str__(),而是__r 阅读全文

posted @ 2019-03-05 22:09 心酒 阅读(195) 评论(0) 推荐(0) 编辑

摘要: 在编写程序的时候,千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性。 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。 先定义 阅读全文

posted @ 2019-03-05 15:48 心酒 阅读(180) 评论(0) 推荐(0) 编辑

摘要: 对于class的继承关系来说,使用type()就很不方便。我们要判断class的类型,可以使用isinstance()函数。 isinstance()判断的是一个对象是否是该类型本身,或者位于该类型的父继承链上。 并且还可以判断一个变量是否是某些类型中的一种,比如下面的代码就可以判断是否是list或 阅读全文

posted @ 2019-03-05 15:39 心酒 阅读(127) 评论(0) 推荐(0) 编辑

摘要: 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class) 当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的ru 阅读全文

posted @ 2019-03-05 14:41 心酒 阅读(42) 评论(0) 推荐(0) 编辑