使用Scrapy爬取图片入库,并保存在本地

使用Scrapy爬取图片入库,并保存在本地

篇博客已经简单的介绍了爬取数据流程,现在让我们继续学习scrapy

 

 

目标:

爬取爱卡汽车标题,价格以及图片存入数据库,并存图到本地

 

好了不多说,让我们实现下效果

 

我们仍用scrapy框架来编写我们的项目:

 

1.首先用命令创建一个爬虫项目(结合上篇博客),并到你的项目里如图所示

 

 

2.先到你的settings.py中配置 ,这里需要注意要 爬图(配置一个爬图管道 ImagesPipeline 为系统中下载图片的管道),

同时还有存图地址(在项目中创建一个为images的文件夹),

存图有多种方式,本人只是列举其中一种,大家可采取不同的方法

 

 

3.然后打开你的爬虫文件(即:car.py)开始编写你要爬取的数据,这里需要注意,要将start_urls[] 改为我们要爬取的Url 地址,然后根据xpath爬取图片 
(这里代码得自己写,不要复制)
 

 

 4.爬取的字段要跟   items.py里的一致

 

 

5.在命令行输入启动爬虫命令 scrapy crawl car  运行就能看到爬到图片存放在本地如下

6.最后入库,看你要入那个库,这里可入mysql和mongdb

 

mysql:  需提前创好库以及表,表中字段

import pymysql
# class NewcarPipeline(object):
    # 连接mysql改为你的用户密码以及自己的库
    # def __init__(self):
    #     self.conn = pymysql.connect(host='127.0.0.1',user='root', password='123456', db='zou')
        # 建立cursor对象
    #     self.cursor = self.conn.cursor()
    #
        # 传值
    # def process_item(self, item, spider):
    #     name = item['name']
    #     content = item['content']
    #     price = item['price']
    #     image = item['image_urls']
    #
        # insert into 你的表名,括号里面是你的字段要一一对应
        
    #     sql = "insert into zou(name,content,price) values(%s,%s,%s)"
    #     self.cursor.execute(sql, (name,content,price))
    #     self.conn.commit()
    #     return item
    #关闭爬虫
    # def close_spider(self, spider):
    #     self.conn.close()

 

mongdb:   不用提前建好库,表

from pymongo import MongoClient
# class NewcarPipeline(object):
#     def open_spider(self, spider):
#         #     连端口 ip
#         self.con = MongoClient(host='127.0.0.1', port=27017)
#         #     库
#         db = self.con['p1']
#         # 授权
#         self.con = db.authenticate(name='wumeng', password='123456', source='admin')
#         #     集合
#         self.coll = db[spider.name]

#     def process_item(self, item, spider):
#         # 添加数据
#         self.coll.insert_one(dict(item))
#         return item

#     def close_spider(self):
#         # 关闭
#         self.con.close()

 

7.运行 启动爬虫命令 scrapy crawl car 就可在库中看到数据.

 

 

至此爬虫项目做完了,这只是一个简单的爬虫,仅供参考,如遇其他方面的问题,可参考本人博客!尽情期待!

 

转载于:https://www.cnblogs.com/wudameng/p/11094772.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于使用Scrapy爬取图片保存的问题,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Scrapy库。如果没有安装,可以通过以下命令进行安装: ``` pip install scrapy ``` 2. 创建一个新的Scrapy项目。在命令行使用以下命令: ``` scrapy startproject project_name ``` 这将在当前目录下创建一个名为 "project_name" 的新项目文件夹。 3. 进入项目文件夹,并创建一个新的Spider。在命令行使用以下命令: ``` cd project_name scrapy genspider spider_name example.com ``` 这将在项目创建一个名为 "spider_name" 的新Spider,用于定义爬取网页的规则。 4. 打开生成的Spider代码文件(位于 "project_name/spiders/spider_name.py"),并添加以下代码: ```python import scrapy class MySpider(scrapy.Spider): name = 'spider_name' start_urls = ['http://www.example.com'] # 要爬取的起始URL def parse(self, response): # 在这里编写解析响应数据的代码 # 提取图片URL并发送请求进行下载 for img_url in response.css('img::attr(src)').getall(): yield scrapy.Request(url=response.urljoin(img_url), callback=self.save_image) def save_image(self, response): # 获取图片保存路径 image_path = 'path/to/save/image.jpg' # 根据需求自定义保存路径和文件名 # 保存图片 with open(image_path, 'wb') as f: f.write(response.body) ``` 在上述代码,我们定义了一个Spider类,包含了起始URL和解析响应数据的方法。在parse方法,我们使用CSS选择器提取图片的URL,并使用scrapy.Request发送请求进行下载。下载后的图片会通过save_image方法保存到本地。 5. 运行爬虫。在命令行使用以下命令: ``` scrapy crawl spider_name ``` 这将启动爬虫并开始爬取网页上的图片。下载的图片保存在您指定的路径下。 请注意,上述代码只是一个简单示例,您可能需要根据具体的网页结构和需求进行相应的修改。另外,确保您遵守网站的爬取规则并尊重版权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值