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

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

一、搭建虚拟环境

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

四步带你爬虫入门,手把手教学爬取电影数据_第1张图片

二、创建项目

本文将以豆瓣作为手把手学习参考,网址:https://movie.douban.com/top250,四步带你爬虫入门,手把手教学爬取电影数据_第2张图片1. 进入Terminal终端,安装我们需要的scrapy模块

pip install scrapy

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

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

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

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

三、编写爬虫案例

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

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

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

  • allowed_domains:允许爬取的范围

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

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

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

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

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

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

  • ROBOTSTXT_OBEY

ROBOTSTXT_OBEY = False

设置为False

  • DEFAULT_REQUEST_HEADERS

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

DEFAULT_REQUEST_HEADERS = {     
    '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', 
}
  • 设置日志输出信息

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

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

 

编写douban.py文件

import scrapy

# 自定义spider,继承scrapy.spider
class DoubanSpider(scrapy.Spider):
    # 爬虫名字
    name = "douban"
    # 允许爬取的范围,防止爬虫爬到别的网站
    allowed_domains = ["movie.douban.com"]
    #开始爬取的url地址
    start_urls = ["https://movie.douban.com/top250"]

    def parse(self, response):
        # scrapy的response对象可以直接进行xpath
        li_list = response.xpath('//div[@id="content"]//ol/li')
        for li in li_list:
            #创建一个数据字典,用来存储信息
            item = {}
            item["title"] = li.xpath(".//div[@class='hd']/a/span[1]/text()").extract_first()
            item['rating'] = li.xpath('.//div[@class="bd"]/div/span[2]/text()').extract_first()
            item['quote'] = li.xpath('.//div[@class="bd"]//p[@class="quote"]/span/text()').extract_first()

            print(item)

第四步:运行爬虫器

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

四步带你爬虫入门,手把手教学爬取电影数据_第3张图片

 

你可能感兴趣的:(爬虫,python,开发语言)