Scrapy豆瓣电影top250(excel保存和图片下载)
豆瓣电影top250url地址:https://movie.douban.com/top250?start=
一. 明确获取数据信息(item)
分析页面上的内容可以获取到的数据信息是电影的名称、导演、演员、简介、上映时间、评分、参与评分人数、图片的url地址.在scrapy的item项目中建立生成对应的。
star = scrapy.Field()# 电影评分quote = scrapy.Field()# 电影简介picture = scrapy.Field()# 电影图片urljude = scrapy.Field()# 电影参与评论人数dect = scrapy.Field()# 电影导演 演员time = scrapy.Field()# 电影上映时间
二. 提取网页数据信息(spider)
利用xpath来提取网页上信息,并在爬虫项目中进行处理提取可用的数据.
def parse(self, response):item = Top250Item()movie = response.xpath("//div[@class = 'item']")# 迭代获取每一块的信息for each in movie:# 电影标题item['title'] = each.xpath(".//div[@class ='info']//span[@class ='title'][1]/text()").extract()[0]# 该标签含有大量信息包括导演 演员 上映时间...Each = each.xpath(".//div[@class ='info']//div[@class ='bd']/p/text()").extract()# 导演 演员等bd = Each[0]item['dect'] = "".join(bd).replace("\n", "").replace("\xa0", "").strip()# 电影上映时间time = Each[1]item['time'] = "".join(time).replace("\n", "").replace("\xa0", "").strip().split("/")[0]# 评分item['star'] = each.xpath(".//div[@class ='info']//div[@class ='star']/span[@class ='rating_num']/text()").extract()[0]# 电影信息简介quote = each.xpath(".//div[@class ='info']//p[@class = 'quote']/span/text()").extract()if len(quote) != 0:item['quote'] = quote[0]else:item['quote'] = "暂无介绍"# 图片的url地址item['picture'] = each.xpath(".//div[@class ='pic']//a/img/@src").extract()[0]# 参与电影评论人数juede = each.xpath(".//div[@class ='info']//div[@class ='star']/span[4]/text()").extract()[0]item['jude'] = juede[:-3]yield item
根据需求访问所有的url地址,寻找规则。
class QSpider(scrapy.Spider):name = 'q'#爬虫项目名称allowed_domains = ['movie.douban.com']#offset = 0url = "https://movie.douban.com/top250?start="start_urls = {url + str(offset),}# 根据规律创建访问的urldef parse(self, response):"""中间省略部分是上方处理提取item数据的代码"""if self.offset < 225:self.offset += 25yield scrapy.Request(self.url + str(self.offset), callback=self.parse)#访问豆瓣电影top250所有的页面
三. 保存并下载数据(pipelines)
将网页上提取下载的数据以excel文件形式保存,并下载电影图片.(pipelines)
def __init__(self):# 创建excel,填写表头self.wb = Workbook()self.ws = self.wb.active# 设置表头self.ws.append(['电影名称','导演和演员','年份','评分','人数','简介'])def process_item(self, item, spider):line=[item['title'],item['dect'],item['time'],item['star'],item['jude'], item['quote']]self.ws.append(line)self.wb.save('电影天堂top250.xlsx')# 保存电影图片byte = urllib.request.urlopen(item['picture'])title =item['title']if not os.path.exists("图片"):os.makedirs("图片")# 代开一个文件,准备以二进制写入文件fp = open("图片"+'/'+title+".jpg","wb")fp.write(byte.read())fp.flush()fp.close()return item
其设置用户代理和ip代理都在settings文件中这里就不贴代码了,相关其余操作请自行百度.
一切就绪我们就可以开始运行了,我们可以知道该爬虫下载了250个文件,用时为38秒(在settings中设置了DOWNLOAD_DELAY = 3)可见下载速度很快.
让我们来看看下载的内容:
Surprise!Wonderful! 里面有没有你喜欢的电影呢?
注意:欢迎大家指出意见,相互学习哦~
Scrapy豆瓣电影top250(excel保存和图片下载)相关推荐
- 豆瓣电影Top 250排行榜海报图片下载
1 需求 豆瓣电影Top 250排行榜海报图片下载,并实现持续化存储. 2 代码实现 import re import requests# 获取网页源代码 headers = {'User-Agent ...
- python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel
douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...
- python爬取豆瓣电影top250并保存为xlsx_Python 爬虫 存储Excel - 豆瓣电影Top250
from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式,进行文字匹配 import urllib.request,urllib.error ...
- python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...
豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...
- 【呕心沥血的一次爬虫经历】豆瓣电影Top250
爬虫实战:豆瓣电影Top250 前言 数据来源 分析网页源码 获取HTML源码 解析网页内容 保存数据 完整代码 结果展示 前言 没有系统的学习爬虫,只是偶尔跟着大佬的博客练练手,有了前几天 女朋友想 ...
- mysql 豆瓣,爬取豆瓣电影Top250并存入Mysql
最近使用scrapy爬取了豆瓣电影Top250的数据和图片保存到Mysql,给大家分享一下 创建scrapy startproject doubantop250 items.py class Doub ...
- 爬取豆瓣电影Top250的全部数据并保存一下~
源代码: # 爬虫### 1) 定义一个列表存放分析好的数据```python datalist = [] ```### 2) 处理url因为豆瓣电影top250的URL要指定页面的参数baseURL ...
- 跟随B站视频学Python爬虫过程(6):豆瓣电影TOP250并存Excel(使用urllib, bs, re, xlwt库)
出于督促自己学习以及未来回顾和分享的目的,记录一下自己的学习过程. B站视频号:BV12E411A7ZQ ep15-25. 完成爬取信息,处理数据,保存到Excel.具体流程为: 1. 找到目标网页的 ...
- 爬虫实战:爬取豆瓣电影 Top-250 到 Excel 表格中
最近在家无聊自学了python的一些基础知识.后来看到许多朋友都在写爬虫,自己感觉很有意思,也想试一下 >____< 其实本来我是想将数据爬取到excel之后再增加一些数据库操作,然后用f ...
- python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250
今天要实现的就是使用是scrapy爬取豆瓣电影TOP250榜单上的电影信息. 步骤如下: 一.爬取单页信息 首先是建立一个scrapy项目,在文件夹中按住shift然后点击鼠标右键,选择在此处打开命令 ...
最新文章
- 围观阿里云最会赚钱的人!价值2万元邀请码不限量发送
- 如何让一种币更有生命力——一种BCH开发资金募集方案大讨论
- mybatis-plus 多列映射成数组_JavaScript 为什么需要类数组
- Maven编译时提示:不兼容的类型
- springboot中的spring-session用mysql实现session共享实践
- SilverLight4调用WebService跨域访问问题
- 3.5W 字详解 Java 集合
- 中考禁用计算机,今年中考数学科禁用计算器,消息来得太突然,懵圈了吧?
- locust+httprunner+Jmeter QQ群微信群问题记录
- (Origin)设置图例位置
- HTML 列表 olullidldtdd
- 用Python操作PPT的办公自动化教程
- Qt 鼠标点击事件穿透
- 计算机表格做八折怎么辛,原来古人的书信常用语那么美
- Error: ADB exited with exit code 1 Performing Streamed Install adb: failed to install D:\svn\app\sm
- 大学生用什么样的笔记本电脑好
- 服务器取证——服务器基础知识
- 文件属性(三)——st_uid属性和st_gid属性
- 魔兽世界活跃人数持续下降
- 一文深入浅出读懂NoSQL