当前位置:   article > 正文

四步带你爬虫入门,手把手教学爬取电影数据_怎么爬取电影

怎么爬取电影

本文内容是通过Pycharm来进行实操

一、搭建虚拟环境

  • 创建项目的虚拟环境,目的是为了不让其他的环境资源干扰到当前的项目

二、创建项目

本文将以豆瓣作为手把手学习参考,网址:https://movie.douban.com/top250,1. 进入Terminal终端,安装我们需要的scrapy模块

pip install scrapy

2. 通过pycharm进入Terminal终端,输入我们接下来打算创建的项目,以myspider为例

  • 创建完之后会生成对象的目录myspider

  • 创建我们想要爬取的蜘蛛名--可以理解为想要爬取的数据来源名字,比如本文是豆瓣

  1. #Termianl终端输入
  2. #先进入我们的项目目录
  3. cd myspider
  4. #创建蜘蛛,scrapy genspider +<爬虫名字> + <允许爬取的域名>
  5. scrapy genspider douban movie.douban.com

三、编写爬虫案例

当我们创建完我们的蜘蛛名后,会在spiders里面生成对应的文件名douban.py

如上图,我们的spider子类scrapy.Spider定义了一些属性和方法

  • name:标识蜘蛛,在一个项目中必须是唯一的

  • allowed_domains:允许爬取的范围

  • start_urls:必须返回请求的可迭代(请求列表或者编写生成器函数),我们的爬行器将从该请求开始爬行。后续请求将从这些初始请求中相继生成。

  • parse():用来编写数据提取,会解析响应,将抓取的数据提取为字典

第一步:确定我们想要爬取的数据信息

  • 在items文件中编写我们想要爬取的字段

  1. import scrapy
  2. class MyspiderItem(scrapy.Item):
  3. # define the fields for your item here like:
  4. # name = scrapy.Field()
  5. title = scrapy.Field() # 标题
  6. rating = scrapy.Field() # 评估
  7. quote = scrapy.Field() # 概述
  8. #brief_introduction = scrapy.Field() #剧情简介

第二步:打开settings设置一些相关配置信息

  • ROBOTSTXT_OBEY

ROBOTSTXT_OBEY = False

设置为False

  • DEFAULT_REQUEST_HEADERS

模拟网页登陆的请求头信息

  1. DEFAULT_REQUEST_HEADERS = {
  2. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
  3. }
  • 设置日志输出信息

  1. LOG_LEVEL = 'WARNING' # 设置日志显示的等级为WARNING
  2. LOG_FILE = './log.txt' # 将日志信息全部记录到log.txt文件中

第三步:编写douban.py,实现爬虫

 

编写douban.py文件

  1. import scrapy
  2. # 自定义spider,继承scrapy.spider
  3. class DoubanSpider(scrapy.Spider):
  4. # 爬虫名字
  5. name = "douban"
  6. # 允许爬取的范围,防止爬虫爬到别的网站
  7. allowed_domains = ["movie.douban.com"]
  8. #开始爬取的url地址
  9. start_urls = ["https://movie.douban.com/top250"]
  10. def parse(self, response):
  11. # scrapy的response对象可以直接进行xpath
  12. li_list = response.xpath('//div[@id="content"]//ol/li')
  13. for li in li_list:
  14. #创建一个数据字典,用来存储信息
  15. item = {}
  16. item["title"] = li.xpath(".//div[@class='hd']/a/span[1]/text()").extract_first()
  17. item['rating'] = li.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
  18. item['quote'] = li.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()
  19. print(item)

第四步:运行爬虫器

  1. #运行name对应的名字
  2. scrapy crawl douban

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/393322
推荐阅读
相关标签
  

闽ICP备14008679号