一、需求:在当当网的程序设计类图书商品界面中,爬取图书的名称、详情链接以及评论数,并将信息存储至SQLite数据库。

二、URL及网页源码分析:

1、URL分析,注意到商品搜索页的URL具有以下结构:

2、源码分析,观察网页的源代码,寻找商品名称、商品链接、评论数信息的所在位置。

1)商品名称:存在于class属性为pic的a标签中的title属性中。

2)商品链接:与商品名称类似,存在于存在于class属性为pic的a标签中的href属性中。

3)评论数信息:被name属性为itemlist-review的a标签所包围。

三、编写代码:

1、items.py:

import scrapyclass DangdangItem(scrapy.Item):#爬取内容为图书名称、图书链接、图书评论数title=scrapy.Field()link=scrapy.Field()comment=scrapy.Field()

2、settings.py:

# 必须解除遵守robots协议
ROBOTSTXT_OBEY = False
#启用pipelines.py来进行数据处理
ITEM_PIPELINES = {'dangdang.pipelines.DangdangPipeline': 300,
}

3、dd.py(笔者创建的爬虫文件):

import scrapy
from dangdang.items import DangdangItem
from scrapy.http import Requestclass DdSpider(scrapy.Spider):name = 'dd'allowed_domains = ['dangdang.com']#设置起始URL为商品第一页start_urls = ['http://category.dangdang.com/pg1-cp01.54.06.00.00.00.html']def parse(self, response):item=DangdangItem()#设定爬取的XPath表达式item["title"]=response.xpath("//a[@class='pic']/@title").extract()item["link"] = response.xpath("//a[@class='pic']/@href").extract()item["comment"] = response.xpath("//a[@name='itemlist-review']/text()").extract()yield item#设置爬取前10页for i in range(2,11):#构造商品URLurl="http://category.dangdang.com/pg"+str(i)+"-cp01.54.06.00.00.00.html"yield Request(url,callback=self.parse)

4、pipelines.py:

import sqlite3class DangdangPipeline(object):def process_item(self, item, spider):#连接数据库并创建游标,本文中的dangdang.db为笔者自行创建的数据库文件,结构见本代码后的图片conn = sqlite3.connect('E:/dangdang.db')cursor=conn.cursor()for i in range(0,len(item["title"])):title=item["title"][i]link=item["link"][i]comment=item["comment"][i]#构造SQL语句并通过游标执行sql = "insert into books values('"+title+"','"+link+"','"+comment+"')"cursor.execute(sql)#注意必须要提交事件才能够使数据库修改操作生效conn.commit()#输出爬取的内容print(title)print(link)print(comment)#关闭游标以及数据库连接cursor.close()conn.close()return item

本文创建的SQLite数据库结构:

四、运行结果:

1、PowerShell(CMD)中:

2、SQLite数据库中(笔者使用SQLiteStudio进行数据库管理):

Python数据爬虫学习笔记(21)Scrapy爬取当当图书数据并存储至SQLite数据库相关推荐

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

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

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

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

  3. Python网络爬虫3 - 生产者消费者模型爬取某金融网站数据

    博客首发于www.litreily.top 应一位金融圈的朋友所托,帮忙写个爬虫,帮他爬取中国期货行业协议网站中所有金融机构的从业人员信息.网站数据的获取本身比较简单,但是为了学习一些新的爬虫方法和技 ...

  4. python爬虫学习笔记分析Ajax爬取果壳网文章

    有时在使用requests抓取页面会遇到得到的结果与在浏览器 中看到的结果不一样,在浏览器检查元素中可以看到的正常的显示的网页数据,但是requests请求得到的结果却没有.这是因为requests请 ...

  5. scrapy 爬取当当图书名字图片

    1.创建项目和创建爬虫参考上一篇博客. 2.dang.py import scrapy from scrapy_dangdang.items import ScrapyDangdangItemclas ...

  6. python爬虫学习日记(1) scrapy爬取时,报错Filtered offsite request

    使用scrapy框架抓取某妹子图网时,只能抓取第一页,第二页报错 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request ...

  7. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析

    这篇文章主要介绍了python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析的实例,帮助大家更好的理解和学习使用python.感兴趣的朋友可以了解下 一.环境准备 python3.8.3 ...

  8. 从入门到入土:Python爬虫学习|实例练手|爬取猫眼榜单|Xpath定位标签爬取|代码

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  9. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

最新文章

  1. 剪绳子python_Python剪绳子如何实现 Python剪绳子实现代码
  2. Flutter:使用复选框进行下拉多选
  3. mysql设置参数0和1_MySQL 8.0 首个自适应参数横空出世
  4. aws创建html网页,AWS: 在AWS上创建一个网站,综合运用(Lambda + Api Gateway + Dynamodb + S3)...
  5. oracle查询pga大小GB,Oracle如何调整SGA和PGA的大小
  6. 搭建Telnet服务器
  7. java同样作用的方法_Java的接口用途和方法
  8. Steroids上的SQL Server Express Edition
  9. Java中Object转Map类型,Map转Object类型
  10. Linux时间不准确的问题![转]
  11. vue-axios配置token,上传图片
  12. 腐蚀单机服务器怎么不稳定,腐蚀有什么指令?基本指令及服务器指令汇总
  13. js-事件处理(重点)
  14. qq远程卡主,只能看到桌面,鼠标、键盘操作不了的解决方法
  15. 微信java sdk 多公众号_Java版微信公众号支付开发全过程
  16. ISO8601时间格式转换为Date
  17. 孤独最高境界:这款单人VR游戏竟能带来多人组队体验
  18. Android打开pdf文件
  19. svn提示Node remains in conflict的解决办法
  20. 原生js 给动态添加的元素添加(事件监听器)

热门文章

  1. VJC案例-光控手控灯开关设计
  2. 强化学习(2): 马尔可夫过程
  3. 重庆南岸车联网发展迅猛,产业集群效应逐步显现
  4. 未来区块链游戏和元宇宙将是NFT行业扩张的主要领域
  5. “交交”萌化网友,服务机器人火了
  6. 【计算机视觉40例】案例03:数字水印
  7. 成大事者是怎样炼成的
  8. 动手强化学习(六):DQN 算法
  9. 动态人脸识别的简要原理分析
  10. 计算机音乐我和你,《我和你》音乐教案