class BaidustocksPipeline(object):
def process_item(self, item, spider):
return item
class BaidustocksInfoPipeline(object):
def open_spider(self, spider):
self.f = open('BaiduStockInfo.txt', 'w')
def close_spider(self, spider):
self.f.close()
def process_item(self, item, spider):
try:
line = str(dict(item)) + '\n'
self.f.write(line)
except:
pass
return item
这个方法的定义,让我再去看了一遍面向对象和面向过程,简单的来说就是python他能定义一个方法class,然后能让程序来调用这个方法,从而实现简化。
同时理解了self这个类的实例,简单的理解就是他是一个虚拟的实例,让程序明白self是一个待定的实例值,以便于实现函数的正常调用。
class User(object):
def __init__(self,name,age):
self.name = name
self.age = age
def SetName(self,name):
self.name = name
def SetAge(self,age):
self.age = age
def GetName(self):
return self.name
def GetAge(self):
return self.age
u = User('TYT',17)
print u.GetName()
print u.GetAge()
上面的程序很好的定义了一个类。
同时理解切片。
alist = ['123', 'abc', 'good', 'hello', 'nice'] >>> alist1 = alist[:] #[:]分号左边表示0开始,右边表示0结束但是!!!不包括0 >>> alist1 #成功将alist列表复制给了alist1 ['123', 'abc', 'good', 'hello', 'nice']不太明白的是为什么不能直接alist1=alist,用处不是一样的吗
本人对scrapy认识就是免去了很多步骤,给特定程序去执行。自己编写spider一个提取页面之中你所需要的信息,同时出现一个简单的搜索工具css,然后去定义pipelinesemsline ,不太明白的就是难道计算机程序他能自动识别open_spider close_spider 还有process_item并且理解这几个函数所干的工作,因为我没有在spider中看到对类class的调用还有函数的调用。看来是对scrapy还不够清楚还要多看看资料理解。scrapy最后面一定要记得去改setting,不然scrapy无法识别你写得class。
然后生成器的理解。这里就不一一叙述。然后需要多多看看python的基本语法。才能熟练的使用python去完成想做的东西。
刚学编程,分享自己的想法,可能叙述的比较乱,希望大家多多包涵,看到错误和我的疑惑请帮我指出。谢谢
ps:我的台式是win7 python32位今天装scrapy 出现了各种问题,经过上网查资料终于解决。如果cmd告诉缺乏无法安装scrapy的原因是缺少vs2017并且要你去微软网站安装vs。因为vs实在太大,所以有种简单的方法。利用安装wheel,然后安装scrpay的编译文件和twisted的编译文件即可解决,具体的话在另外一篇文章。