豆瓣电影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保存和图片下载)相关推荐

  1. 豆瓣电影Top 250排行榜海报图片下载

    1 需求 豆瓣电影Top 250排行榜海报图片下载,并实现持续化存储. 2 代码实现 import re import requests# 获取网页源代码 headers = {'User-Agent ...

  2. python爬取豆瓣电影top250并保存为xlsx_python抓取豆瓣电影Top250数据并写入Excel

    douban python抓取豆瓣电影Top250数据并写入Excel 1.将目标网站上的页面抓取下来 2.将抓取下来的数据根据一定的规则进行提取 create table `tb_movie`( i ...

  3. python爬取豆瓣电影top250并保存为xlsx_Python 爬虫 存储Excel - 豆瓣电影Top250

    from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式,进行文字匹配 import urllib.request,urllib.error ...

  4. python爬取豆瓣电影top250并保存为xlsx_python 爬虫获取豆瓣电影排行榜前250并写入excel...

    豆瓣电影排行榜前250 分为10页,第一页的url为https://movie.douban.com/top250,但实际上应该是https://movie.douban.com/top250?sta ...

  5. 【呕心沥血的一次爬虫经历】豆瓣电影Top250

    爬虫实战:豆瓣电影Top250 前言 数据来源 分析网页源码 获取HTML源码 解析网页内容 保存数据 完整代码 结果展示 前言 没有系统的学习爬虫,只是偶尔跟着大佬的博客练练手,有了前几天 女朋友想 ...

  6. mysql 豆瓣,爬取豆瓣电影Top250并存入Mysql

    最近使用scrapy爬取了豆瓣电影Top250的数据和图片保存到Mysql,给大家分享一下 创建scrapy startproject doubantop250 items.py class Doub ...

  7. 爬取豆瓣电影Top250的全部数据并保存一下~

    源代码: # 爬虫### 1) 定义一个列表存放分析好的数据```python datalist = [] ```### 2) 处理url因为豆瓣电影top250的URL要指定页面的参数baseURL ...

  8. 跟随B站视频学Python爬虫过程(6):豆瓣电影TOP250并存Excel(使用urllib, bs, re, xlwt库)

    出于督促自己学习以及未来回顾和分享的目的,记录一下自己的学习过程. B站视频号:BV12E411A7ZQ ep15-25. 完成爬取信息,处理数据,保存到Excel.具体流程为: 1. 找到目标网页的 ...

  9. 爬虫实战:爬取豆瓣电影 Top-250 到 Excel 表格中

    最近在家无聊自学了python的一些基础知识.后来看到许多朋友都在写爬虫,自己感觉很有意思,也想试一下 >____< 其实本来我是想将数据爬取到excel之后再增加一些数据库操作,然后用f ...

  10. python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250

    今天要实现的就是使用是scrapy爬取豆瓣电影TOP250榜单上的电影信息. 步骤如下: 一.爬取单页信息 首先是建立一个scrapy项目,在文件夹中按住shift然后点击鼠标右键,选择在此处打开命令 ...

最新文章

  1. 围观阿里云最会赚钱的人!价值2万元邀请码不限量发送
  2. 如何让一种币更有生命力——一种BCH开发资金募集方案大讨论
  3. mybatis-plus 多列映射成数组_JavaScript 为什么需要类数组
  4. Maven编译时提示:不兼容的类型
  5. springboot中的spring-session用mysql实现session共享实践
  6. SilverLight4调用WebService跨域访问问题
  7. 3.5W 字详解 Java 集合
  8. 中考禁用计算机,今年中考数学科禁用计算器,消息来得太突然,懵圈了吧?
  9. locust+httprunner+Jmeter QQ群微信群问题记录
  10. (Origin)设置图例位置
  11. HTML 列表 olullidldtdd
  12. 用Python操作PPT的办公自动化教程
  13. Qt 鼠标点击事件穿透
  14. 计算机表格做八折怎么辛,原来古人的书信常用语那么美
  15. Error: ADB exited with exit code 1 Performing Streamed Install adb: failed to install D:\svn\app\sm
  16. 大学生用什么样的笔记本电脑好
  17. 服务器取证——服务器基础知识
  18. 文件属性(三)——st_uid属性和st_gid属性
  19. 魔兽世界活跃人数持续下降
  20. 一文深入浅出读懂NoSQL

热门文章

  1. webgl 地球_使用WebGL和JavaScript构建地球
  2. 计算机技术未来的研究热点,计算机科学前沿热点及发展趋势
  3. 修改解锁植物大战僵尸所有模式、关卡、金钱
  4. 16.Linux网络编程
  5. 和我一起打造个简单搜索之Logstash实时同步建立索引
  6. windows系统无法输入激活码
  7. 【PHP】百度贴吧自动/云签到脚本(PC 端)
  8. bin文件如何编辑_如何加密PDF?使用福昕PDF编辑器加密PDF文件实操
  9. JAVAFX版简易计算器
  10. Topshelf 打包部署Windows服务