用scrapy框架爬取历年电影排名和出版

本文介绍了如何使用Python的Scrapy框架来爬取IMDb网站的电影排名、放映时间和评分。首先从Scrapy项目创建开始,接着详细讲解了编写imdb.py爬虫文件、设置middlewares.py、pipelines.py以及settings.py和items文件的过程。最终成功运行main.py文件,实现了电影数据的抓取。
摘要由CSDN通过智能技术生成

Scrapy简介

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 

Scrapy入门请看官方文档:scrapy官方文档

本爬虫爬取的是电影排名与放映时间和评分 成果图如下:

整体思路

1、新建项目和爬虫文件 2、编写test1文件和main.py代码 3、修改middlewares.py/编写piplines.py 4、修改settings,items文件代码 5、启动

1.新建项目和爬虫文件

 

 2.编写imdb.py文件

注意理解注释。

from yingshi.items import YingshiItem
import scrapy
import time


class ImdbSpider(scrapy.Spider):
    name = 'imdb'
    allowed_domains = ['imdb.cn']
    start_urls = ['https://www.imdb.cn/imdb250/']
    offset=0

    def parse(self, response):
        items=YingshiItem()
        lists=response.xpath('//tbody[@class="rl_lister-list"]/tr')#获取想要爬的地方的xpath
        print('获取的lists:',lists)
        for i in lists:
            items['mingzi'] = i.xpath('./td/a/@title').get()#使用get方法获取电影名字的xpath
            print('电影名:',items['mingzi'])
            items['shijian']=i.xpath('./td/a/span/text()')[0].extract()#获取电影时间的xpath
            items['shijian']=items['shijian'][1:5]#获取括号中的时间
            print('时间:',items['shijian'])
            items['fen']=i.xpath('./td[@class="rl_grade_IMDB"]/span/text()')[0].extract() #获取评分的xpath
            print('评分:',items['fen'])
            time.sleep(0.5)#停顿
            yield items

main.py文件

from scrapy.cmdline import execute
execute("scrapy crawl imdb".split())

3.修改middlewares.py

# Define here the models for your spider middleware
#
# See documentation in
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A.一十五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值