scrapy数据建模与请求
数据建模
❤在爬虫项目中,item.py
文件通常用来定义数据模型(Item),用于存储从网页抓取到的信息。这种数据模型通常使用 Scrapy 框架提供的 Item
类或类似的类(如 PyQuery、BeautifulSoup 等库中的类似概念)来构建。
1.1为什么建模
1.定义item即提前规划好哪些字段需要抓,防止手误,因为定义好之后,在运行过程中,系统会自动检查
2.配合注释一起可以清晰的知道要抓取哪些字段,没有定义的字段不能抓取,在目标字段少的时候可以使用字典代替
3.使用scrapy的一些特定组件需要项做支持,如scrapy的ImagesPipeline管道类
1.2如何建模
-
找到item.py文件
-
定义Item字段及其数据类型
(此处使用的是最基础的Field方法–基本字段定义(默认都是字符串类型))
[!IMPORTANT]
每个字段都是通过调用
scrapy.Field()
创建的。虽然这里没有显式指定字段的数据类型,但在实际使用中,Scrapy 会根据赋值数据自动推断字段类型,通常默认为字符串类型。如果您需要指定特定的数据类型或额外的参数,可以传递给Field()
方法
1.3如何使用模板类
❤模板类定义以后需要在爬虫中导入并且实例化,之后的使用方法和使用字典相同
- 回到爬虫文件
2.导入item文件
from myspider.items import MyspiderItem
3.实例化item文件(在原先用字典的地方进行实例化)
❤应替换的地方
❤实例化的替换地方
[!NOTE]
在item.py文件中,由于自己建的类不属于字典,所以在管道中直接把item当作字典进行转换时scrapy在运行的过程中会报错,必须将item对象强转成字典
tips:
- from myspider.items import Myspideritem这一行代码中 注意item的正确导入路径,忽略pycharm标记的错误
r.items import Myspideritem这一行代码中 注意item的正确导入路径,忽略pycharm标记的错误 - python中的导入路径要诀:从哪里开始运行,就从哪里开始导入