<>强创建爬虫项目豆瓣强>
scrapy startproject豆瓣
<强>设置items.py文件,存储要保存的数据类型和字段名称强>
# - * -编码:utf - 8 - * 进口scrapy 类DoubanItem (scrapy.Item): title=scrapy.Field () #内容 内容=scrapy.Field () #评分 rating_num=scrapy.Field () #简介 之前报价=scrapy.Field () ><强>设置爬虫文件doubanmovies.py 强>
# - * -编码:utf - 8 - * 进口scrapy 来自豆瓣。项目导入DoubanItem 类DoubanmoviesSpider (scrapy.Spider): name=' doubanmovies ' allowed_domains=(“movie.douban.com”) 抵消=0 url=' https://movie.douban.com/top250& # 63;开始=' start_urls=[url + str(抵消)] def解析(自我,反应): #打印(‘*’* 60) #打印(response.url) #打印(‘*’* 60) 项=DoubanItem () 信息=response.xpath ("//div [@class='信息']”) 为每一个信息: 项目(“标题”)=each.xpath(”。//跨度[@class='标题'][1]/text ()”) .extract () 项目(“内容”)=each.xpath (”。//div [@class=' bd ']/p [1]/text ()”) .extract () 项目(“rating_num”)=each.xpath(”。//跨度[@class=' rating_num ']/text ()”) .extract () 每个.xpath项[' "]=(”。//跨度[@class=' inq ']/text ()”) .extract () 收益项 #打印(项) 自我。抵消+=25 如果自我。抵消& lt;=250: 收益scrapy.Request(自我。url + str (self.offset),回调=self.parse)<强>设置管道文件,使用mongodb数据库来保存爬取的数据。重点部分强>
# - * -编码:utf - 8 - * 从scrapy。配置导入设置 进口pymongo 类DoubanPipeline(对象): def __init__(自我): 自我。主机=设置(“MONGODB_HOST”) 自我。端口=设置(“MONGODB_PORT”) def process_item(自我,物品,蜘蛛): #创建mongodb客户端连接对象,该例从settings.py文件里面获取mongodb所在的主机和端口参数,可直接书写主机和端口 自我。客户=pymongo.MongoClient (self.host self.port) #创建数据库豆瓣 自我。mydb=self.client(“豆瓣”) #在数据库豆瓣里面创建表doubanmovies #把类似字典的数据转换为phthon字典格式 内容=dict(项) #把数据添加到表里面 self.mysheetname.insert(内容) 返回项目<强>设置settings.py文件强>
# - * -编码:utf - 8 - * BOT_NAME=岸拱辍? SPIDER_MODULES=(“douban.spiders”) NEWSPIDER_MODULE=' douban.spiders ' USER_AGENT=' Mozilla/5.0 (compatible;MSIE 9.0;Windows NT 6.1;三叉戟/5.0; #配置一个延迟请求相同的网站(默认值:0) #见https://doc.scrapy.org/en/latest/topics/settings.html # download-delay #参见自动油门设置和文档 DOWNLOAD_DELAY=3 #下载延迟设置将荣誉> scrapy爬豆瓣这博客园的代码片段缩进,难道要用4个空格才可以搞的定吗?我发现只能使用4个空格才能解决如上图的代码块的缩进
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Python使用mongodb保存爬取豆瓣电影的数据过程解析