爬虫实例四:通过使用scrapy框架爬取豆瓣电影top250字段

本文详细介绍了如何使用Scrapy框架爬取豆瓣电影Top250的数据,包括创建项目、设置配置、定义爬取字段、编写爬虫、构建数据清洗、去重和存储的管道,以及实现用户代理中间件。最后,数据将被存储到MongoDB数据库中,并提供了运行爬虫的步骤。
摘要由CSDN通过智能技术生成

1-打开powshell 创建项目 执行命令scrapy startproject DouBanTop

scrapy startproject DouBanTop

2- 执行命令 cd DouBanTop

cd DouBanTop
scrapy genspider TouTiao movie.douban.com

3-使用pycharm或者vscode打开自己创建的项目名

(1)在settings.py文件里把ROBOTSTXT_OBEY = True改为False

ROBOTSTXT_OBEY = False

# Configure a delay for requests for the same website (default: 0)
# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
# See also autothrottle settings and docs
DOWNLOAD_DELAY = 3  #下载延迟3秒
# The download delay setting will honor only one of:
CONCURRENT_REQUESTS_PER_DOMAIN = 16  #线程的并发数
#CONCURRENT_REQUESTS_PER_IP = 16

(2)在items.py中创建需要爬取豆瓣电影的字段 如电影标题 电影评分等等

import scrapy
class DoubanItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()  # 电影名字
    score = scrapy.Field() #电影评分
    count = scrapy.Field() #评价人数
    #introduce =scrapy.Field() #电影简介
    director = scrapy.Field() #电影导演

(3)在自己创建的DouBanTop.py文件中 对豆瓣电影进行爬取

# -*- coding: utf-8 -*-
import scrapy
from DouBan.items import DoubanItem

class DoubantopSpider(scrapy.Spider):
    name = 'DouBanTop'
    allowed_domains = ['movie.douban.com']
    start_urls = ['https://movie.douban.com/top250']

    def parse(self, response):
        print(response.request.headers,"###########################")
        #翻页并发
        #https://movie.douban.com/top250?start=50&filter=
        for index in range(10):
            param_url ='?start=%d&filter='%(index*25)
            #对每一页的Url进行拼接  获取每一页的url 分析可得每一页为start*25
            page_url = response.url+param_url
            index+=1
            yield scrapy.Request(url=page_url,callback=self.parse_page_url)

    # 每一页的25条电影信息
    def parse_page_url(self,response):

        """对每一页的25部电影并发"""
        #对每一页的url进行简单的判断 如果不存在 就返回
        if response.status !=
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值