1。创建项目和创建爬虫参考上一篇博客。

2.dang.py

import scrapy
from scrapy_dangdang.items import ScrapyDangdangItemclass DangSpider(scrapy.Spider):name = 'dang'# 多页下载要注意  allowed_domains 范围,一般只写域名allowed_domains = ['category.dangdang.com']start_urls = ['http://category.dangdang.com/cp01.01.02.00.00.00.html']base_url = 'http://category.dangdang.com/pg' page = 1def parse(self, response):li_list = response.xpath('//ul[@id="component_59"]/li')  # xpath 选择要爬取的内容路径for li in li_list:src = li.xpath('.//img/@data-original').extract_first()  # 懒加载反爬 第一张图片和其他图片的标签属性是不一样的,第一张图片是可以使用 src 的,其他图片的地址是 data-originalif src:src = srcelse:src = li.xpath('.//img/@src').extract_first()name = li.xpath('.//img/@alt').extract_first()price = li.xpath('.//p[@class="price"]/span[1]/text()').extract_first()book = ScrapyDangdangItem(src=src,name=name,price=price)yield book  # 获取一个 book 就将 book 交给 pipelines ,yield 类似 return# 每一页的爬取逻辑是一样的。只需要将执行页的请求再次调用 parse 方法if self.page < 100:self.page = self.page + 1url = self.base_url +str(self.page) + '-cp01.01.02.00.00.00.html'  # 每页的url链接拼接# callback 要执行的函数yield  scrapy.Request(url=url,callback=self.parse)

3. items 定义数据结构

items.py

import scrapy
class ScrapyDangdangItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()src = scrapy.Field()        # 图片name = scrapy.Field()       # 名字price = scrapy.Field()      # 价格

4.管道 pipelines 下载数据

pipelines.py

import urllib.request
from itemadapter import ItemAdapter# 如果想使用管道 ,必须在 settings 开启管道
class ScrapyDangdangPipeline:# 在爬虫文件开始之前执行def open_spider(self,spider):self.fp = open('book.json','a',encoding='utf-8')# item 就是yield 后面的 book 对象def process_item(self, item, spider):# write 方法必须是一个字符串# 对文件打开关闭操作过于频繁,不推荐这样做# with open('book.json','a',encoding='utf-8') as fp:#     fp.write(str(item))self.fp.write(str(item) + ',')return item# 在爬虫文件执行完之后 执行def cloxe_spider(self,spider):self.fp.close()# 再开一条管道下载
# 1)定义管道类,并在 settings 中增加 'scrapy_dangdang.pipelines.DangDangDownloadPipeline': 301,
class DangDangDownloadPipeline:  # 定义管道类def process_item(self,item,spider):url = 'http:' + item.get('src')  # 图片地址拼接filename = r'C:\Users\Administrator\Desktop\books' + './' + item.get('name') + '.jpg'urllib.request.urlretrieve(url=url,filename=filename)  # 下载图片return item

5.爬取下载的部分数据保存在 json

6.保存的图片

scrapy 爬取当当图书名字图片相关推荐

  1. Python数据爬虫学习笔记(21)Scrapy爬取当当图书数据并存储至SQLite数据库

    一.需求:在当当网的程序设计类图书商品界面中,爬取图书的名称.详情链接以及评论数,并将信息存储至SQLite数据库. 二.URL及网页源码分析: 1.URL分析,注意到商品搜索页的URL具有以下结构: ...

  2. Scrapy爬取当当网图书销售前100

    scrapy爬取当当网图书畅销榜 一.采集任务 爬取当当网图书畅销榜信息,获取热销图书前500相关数据. 二.网页解析 1. 打开当当网,按照图书榜>图书畅销榜 进入当当网图书畅销榜[http: ...

  3. python实战|用scrapy爬取当当网数据

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进击者 ( 想要学习Python?Pyth ...

  4. 爬取当当图书排行榜(榜单自选),格式:爬取结果包含但不限于[排名 书名 作者],注意输出格式对齐

    目录 爬取当当图书排行榜 查看当当图书排行榜,分析其网址各部分代表的意义,选取特定分类和时间区间进行爬取 解析网页内容,查看所需信息(排名,书名,作者,出版社,价格)的位置: 筛选所需数据,输出并保存 ...

  5. Scrapy爬取当当网的商品信息存到MySQL数据库

    Scrapy爬取当当网的商品信息存到MySQL数据库 Scrapy 是一款十分强大的爬虫框架,能够快速简单地爬取网页,存到你想要的位置.经过两天的摸索,终于搞定了一个小任务,将当当网的商品信息爬下来存 ...

  6. Scrapy爬取动态页面下载图片(以抓取360图片为例)

    当我们想要抓取一个页面的内容时,要做的第一件事不是写代码,而是分析页面,确定这是一个静态页面还是动态页面.抓取静态页面的方法十分简单,直接解析html源码再进行分析解析即可,如果不太明白,可以参考我上 ...

  7. Scrapy爬取豆瓣图书详情存入CSV并导入MySQL

    目录 前言 一.新建爬虫工程 二.修改settings.py文件 三.编写items.py 四.编写pipelines.py 五.编写book.py 六.存储到MySQL 七.爬取结果 八.后言 前言 ...

  8. scrapy mysql 豆瓣_利用Scrapy爬取豆瓣图书并保存至Mysql数据库

    Scrapy是一个纯Python语言写的爬虫框架,本次用它来爬取豆瓣图书的数据. 准备工作 没有安装Scrapy的同学需要安装一下,有两种方式安装: 安装了Anaconda的同学直接在命令行输入con ...

  9. scrapy爬取当当网Python图书的部分数据

    1.下载scrapy框架 pip install scrapy 2.在E盘下创建一个文件夹scrapy01,在命令行窗体中进入该文件夹 3.创建项目:scrapy startproject 项目名 s ...

最新文章

  1. mysql将字符转换成数字
  2. 3306 端口 要不要修改_zabbix 自动发现并监控所有端口
  3. 华为S5500T 存储巡检
  4. 花之吻自己查错误订单的一个小脚本
  5. 【科普】什么是 “内卷化效应” ?
  6. FZU - 2218 Simple String Problem(状压dp)
  7. 联想扬天T4900v开启VT-x方法
  8. 减治法在求解拓扑排序问题中的应用(JAVA)--有向无环图
  9. clickhouse 物化视图_再谈clickHouse:微博基于 ClickHouse 监控百亿流量下的指标
  10. Linux中断技术、门描述符、IDT(中断描述符表)、异常控制技术总结归类
  11. php pdf压缩工具,在线压缩PDF文件的工具
  12. webstorm小程序插件和中文插件
  13. 海康威视网络摄像头开发流程(七)-------- 激活海康威视网络摄像头
  14. 华为 emui 刷机解锁及回锁教程
  15. C语言 实验六 函数
  16. Glide库里,藏了一套你心心念念的GIF压缩工具集
  17. 欧姆龙CP1H+CIF11与3台施耐德ATV 71变频器通讯实战程序
  18. IT人跨界:开了咖啡店却从没想过赚钱
  19. csgo星空天空代码_csgo天空背景怎么改_csgo天空背景更改方法
  20. java pdf转jpg清晰度_java 库 pdfbox 将 pdf 文件转换成高清图片方法

热门文章

  1. 图像超分辨率重建数据集看这篇就够了——训练 + 测试 | 【云盘分享】
  2. Spring Cloud教程(十一)环境变化和刷新范围
  3. MDL---Material Design Lite框架推荐
  4. 【springmvc】九大组件之HandlerExceptionResolver
  5. 【苹果群发iMessage推送位置推】软件安装将会按照 Developer Program【WebSocket】创建WebSocket毗连
  6. python伪造邮件发件地址_python-SMTPSenderRefused-553,发件人地址未经验证-Django电子邮件表格...
  7. 国内云计算的下半场机遇在哪里?
  8. 微营销实战demo coffee
  9. 微信公众号开发——关注公众号自动回复
  10. 基于DL的计算机视觉(5)--理解反向传播