总结
1.解析字段信息
-
假设我们要获取图片的信息, 首先会下载start_urls,交给parse方法处理,在该方法中进行信息的获取,可以使用response对象的css选择器拿到a标签的selector,然后遍历这个selector,通过遍历得到的selector再次进行元素定 位,并获取img图片的src属性值,如:
a_selector.css('img::attr(src)').extract()[0]
,这样就成功拿到图片地址了; -
解析完图片地址之后还需要获取页面的url,如:
a_selector.css('::attr(href)').extract()[0]
,获取到url之后要在Request请求中使用parse函数的urljoin()方法对获取到的页面的url进行封装得到图片的绝对路径,使用参数callback指定回调函数,然后还可以使用Reques对象中的参数meta将通过parse解析到的信息全部传递到回调函数中进行封装解析,如:meta={'a_image_url': image_url}
; -
通过这种方式我们就可以获取页面中我们想要的字段信息了,如标题、时间等;
2.构建数据模型
-
我们在创建模板时会自动生成一些文件,items.py文件就是其中一个,我们构建数据模型就需要用到这个文件,这个文件会自动生成一个modle,这个modle会继承
scrapy.Item
,然后我们可以根据我们的需求在自动生成的这个modle中随意创建字段; -
创建好字段之后,需要在spider中添加构建模型,最后让构建模型中的字段和之前modle中的字段名一致,防止赋值出错;
-
在spider中添加构建模型首先需要实例化items.py文件中的modle,然后通过实例化对象添加字段到modle中,最后将数据模型进行落地,让数据持久化。把实例化对象返回到pipelines.py中;