python scrapy框架爬虫豆瓣t250

本文介绍了如何使用Python的Scrapy框架进行豆瓣电影T250的爬虫开发,包括安装Scrapy、创建项目、配置settings文件、编写XPath表达式和处理items。作者强调了Scrapy框架对初学者的友好性和爬虫路径寻找的重要性。
摘要由CSDN通过智能技术生成

python scrapy框架爬虫豆瓣t250

安装scrapy pip包的管理工具
pip install scrapy(在cmd中下载我这里已经下载好了不再赘述);

首先我们创建一个文件使用 cd 命令来将创建好的文件夹拖进命令行中;
在这里插入图片描述
输入命令行以后我们发现文件夹中有文件 scrapy startproject douban250Spider
在这里插入图片描述
切换到指定目录 cd douban250Spider/douban250Spider
在这里插入图片描述

我们查看豆瓣250的网址,使用命令 scrapy genspider douban250 "movie.douban.com/top250"

在这里插入图片描述
在这里插入图片描述
我们可以打开文件夹来查看是否成功出现douban250文件则证明创建成功;
在这里插入图片描述
使用python来打开文件
在这里插入图片描述
在这里插入图片描述
这个报错直接找设置给好环境
在这里插入图片描述
鼠标点到用alt+enter安装就好
在这里插入图片描述

打开items文件输入下面的代码

  movieImg = scrapy.Field()
    movieName = scrapy.Field()
    movieAuthor = scrapy.Field()
    movieYear = scrapy.Field()
    movieCountry = scrapy.Field()
    movieType = scrapy.Field()

差不多和java中的mysql增删改查差不多一样。
在这里插入图片描述
将settings.py的第17行给修改为下面的(重要)

USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0"

在这里插入图片描述
将下列代码粘贴到spiders下的quotes.py

 movies  =response.xpath("//div[@class='item']")
        for movie in movies:
            item =Db250SpiderItem()
            txt=movie.xpath("div[@class='info']/div[@class='bd']/p/text()").extract()

            author = txt[0].split()[1]
            year = txt[1]
            country=txt[1]
            mType = txt[1]
            start_Index = year.find('/')
            end_index = year.find('/',start_Index+1)
            year = year[:start_Index].split()[0]
            country =country[start_Index+1:end_index].split()
            mType=mType[end_index+1:].split()
            item["movieImg"]=movie.xpath("div[@class='pic']/a/img/@src").extract_first()
            item["movieName"]=movie.xpath("div[@class='info']/div[@class='hd']/a/span[1]/text()").extract_first()
            item["movieAuthor"]=author
            item["movieYear"]=year
            item["movieCountry"]=country
            item["movieType"]=mType

            yield item

        next_page =response.xpath("//span[@class='next']/a/@href").extract_first()
        if next_page:
            yield scrapy.Request(url=response.urljoin(next_page),callback=self.parse)

我们可以发现我们想要的每一个路径都和想要的字段相同,爬虫大概就是在网站中找路径的过程
yield为迭代器下一页一页只有25条,用下一页会不断爬出数据直到爬完为止。
在这里插入图片描述

如果中间会报错的话你需要做的是将你自己的items中的类名给拷贝过来它为我们插入的包

在这里插入图片描述
在这里插入图片描述
这个就是路径问题左上角的小灯泡会帮你写,和 idea 一样。

from douban250Spider.douban250Spider.items import Douban250SpiderItem
报错的话可以导这个包(本人亲测好用,因为我也报错了)。

在这里插入图片描述

item中的类
在这里插入图片描述

做完这些点运行不会报错在这里插入图片描述

在命令行使用生成json文件

scrapy crawl douban250 -o douban250.json。

路径不对但是爬出数据了尴尬 ,还是路径错误
在这里插入图片描述
在这里插入图片描述
在我看来爬虫是一个在网站上找路径的游戏,路径找到就会出数据

至于为什么我们要用scrapy框架,因为这是上手最快的方法。对初学者友好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值