【项目实战】使用Scrapy爬取商品信息并写入MySQL数据库
2018-01-31 10:57
921 查看
这个项目写了三天,其中遇到了无数的坑,该项目的目标是爬取当当网上某类书的书名、链接和评论数,并写入数据库,以下是步骤。
1.先创建一个项目,在终端里输入:
3.要爬取商品的书名、链接和评论,在items.py中创建三个容器
4.在爬虫文件dd.py中,导入DangdangItem,使用xpath表达式提取信息,在for循环使用回调函数,反复调用self.parse方法
5.在pipelines.py文件中进行数据处理,并写入数据库。
1.先创建一个项目,在终端里输入:
scrapy startproject dangdang2.并在该项目下,创建一个爬虫文件
cd dangdang scrapy genspider -t basi 4000 c dd dangdang.com
3.要爬取商品的书名、链接和评论,在items.py中创建三个容器
import scrapy class DangdangItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() title = scrapy.Field() link = scrapy.Field() comment = scrapy.Field()
4.在爬虫文件dd.py中,导入DangdangItem,使用xpath表达式提取信息,在for循环使用回调函数,反复调用self.parse方法
import scrapy from dangdang.items import DangdangItem class DdSpider(scrapy.Spider): name = 'dd' allowed_domains = ['dangdang.com'] start_urls = ['http://www.dangdang.com/'] def parse(self, response): item = DangdangItem() 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 for i in range(2,10): url = "http://category.dangdang.com/pg" + str(i) + "-cp01.54.06.00.00.00.html" yield Request(url,callback=self.parse)4.在MySQL中创建一个数据库。
mysql>create database dd; mysql>use dd; mysql>create table books(title,link,comment) values(title char(100) primary key,link char(100) unique,comment int(20));
5.在pipelines.py文件中进行数据处理,并写入数据库。
import pymysql class DangdangPipeline(object): def process_item(self, item, spider): conn = pymysql.connect("127.0.0.1",user="root",passwd="newpass",db="dd",charset="utf8") cursor = conn.cursor() for i in range(0,len(item["title"])): title=item["title"][i] link=item["link"][i] comment=item["comment"][i] sql="insert into books(title,link,commment) values('"+title+"','"+link+"','"+comment+"')" cursor.execute(sql) conn.commit() conn.close() return item
相关文章推荐
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- 项目实战:zabbix服务器添加监控主机,使用监控模板及自定义监控CPU信息
- iOS项目开发实战——使用用户首选项数据API存储信息
- 【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
- Python3 大型网络爬虫实战 004 — scrapy 大型静态商城网站爬虫项目编写及数据写入数据库实战 — 实战:爬取淘宝
- 商城项目实战14:MyBatis分页插件(PageHelper)的使用以及商品列表展示
- 【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
- 从框架到完整项目搭建,实战项目《约个球》(2)-框架搭建之使用CrashHandler来获取应用的Crash信息
- 【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
- 解决在web项目使用log4j中无法将log信息写入文件
- Scrapy爬取当当网的商品信息存到MySQL数据库
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- iOS项目开发实战——使用CoreLocation获取当前位置信息
- 安装Cocoapods(MAC 10.11.1 安装不成功修正完毕)使用命令写文件夹以及写入需要的第三方类库信息并集成到项目中
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
- 使用scrapy框架简单快速爬取淘宝商品信息
- Python实战_1_第一周_第二节练习项目:爬取商品信息
- 【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
- 安装Cocoapods(MAC 10.11.1 安装不成功修正完毕)使用命令写文件夹以及写入需要的第三方类库信息并集成到项目中
- iOS项目开发实战——使用CoreLocation获取当前位置信息