scrapy爬虫案例python,scrapy官方中文文档
scrapy-管道的基本用法-如何自定义ImagesPipeline抓取图片_ 12893656的技术博客_博客
1.通用函数类testPipeline(对象):
def __init__(self):
初始化一些东西,比如打开一个文件,写入头文件,只运行一次。
及格
def process_item(自身、项目、蜘蛛):
此方法由每个项目管道组件调用,必须返回。
退货项目
def open_spider(self,spider):
crawler启动时运行。
def close_spider(自己,蜘蛛):
crawler关闭时运行
@classmethod
def from_crawler(cls,crawler):
当调用类方法时,将生成管道的一个实例,
您还必须返回管道实例。
例如,在设置文件中获取mysql登录的端口号。
val=crawler . settings . get( MYSQL _ HOST )
返回cls(值)
几个表面函数都有spider参数,spider有name属性,是爬虫的名字。当一个文件中有多个蜘蛛和多个管道类时,这可以用来确保蜘蛛对应于管道类。
2.DropItemfrom scrapy.exceptions导入DropItem
如果项目[价格]== :
DropItem()
如果抓取的房价是空的,可以用这种方式扔掉。
当有多个管道类时,捕获的数据将根据优先级进行传递。在这种情况下,可以将raise Dropitem()添加到return item之前,这样该项就不会被传递到下一级。
3 .设置写完管道,别忘了在设置里设置。
ITEM_PIPELINES={
scrapy 1 . pipelines . testpipele :300,
}
以下数字从0到1000。数字越小,优先级越高。
Scrapy还提供了很多方便的文件输出,比如在命令行。
scrapy run spider test . py-o test _ data . CSV
而且提供了CsvItemExporter的类,这个我还没搞清楚,等我搞清楚了再分享。4.ImageSpipelineCrapy改进了图像的处理管道,它简单地用在一系列文章中来打破僵局。如果你想做一些高级的功能,你需要重写类中的方法。三个重要的方法:
1.get_media_requests(自己、项目、信息)
2.file_path(自身,请求,响应=无,信息=无)
抓住女神丫丫不放:
这是四个图集,后面用红框命名文件夹。进入图集后,里面会有一些图片。
类ImagedowPipeline(images pipeline):
def get_media_requests(自身、项目、信息):
对于项目[image]中的img_url:
让步请求(img_url,meta={item:item})
#将图片链接给Request,该项被传递给file_path函数
def file_path(自身,请求,响应=无,信息=无):
item=request.meta[item]
folder_name=item[name]
#接收传递的项目
filename=“{ 0 }//{ 1 }”。format(folder_name,str(random.random()))。 jpg
#文件夹名就是红框里的信息,每张图片都用随机数命名。
返回文件名
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。