scrapy 爬电影 抓取数据

前段时间学python学完了基础的知识当然是要来点实际的东西玩玩了。爬虫,这个对于python再适合不过,今天就先来爬一个电影网站,下一篇我们来爬美女图片,这篇就做为一个爬虫基础练练手。将他有的资源信息爬下来保存成一个csv文件。

环境 mac python3.6.1 pycharm

Step1

默认scrapy的环境是安装好的。我们在终端里输入scrapy startproject 工程名新建一个爬虫项目,scrapy会为我们初始化一个基本结构如下图:

image.png

其中Id97Index.py是我们编写逻辑的文件,也是我们自己建的。除此之外都会在新建项目时生成。

Step2

在items.py中创建我们的实体类:


image.png

分别为“封面”、“电影名”、“评分”、“类型”
该实体类会在后面提交数据时scrapy进行写入需要用到的,总之呢。你需要存什么数据就写对应字段,后面保存文件后你就明白了

Step3

现在可以开始写我们爬虫的逻辑了
如Step1我们在spiders文件夹下新建一个Index97Index.py再新建类Id97Movie继承CrawlSpider如下:

image.png

其中name为我们启动项目的名字
host主要为后面做一些拼接
allowed_domains主域名
start_urls需要请求爬的初始urls

image.png
image.png

从源码可以看到namestart_urls是必要的参数,并且一开始的请求是循环start_urls,所以一定不能忘记,名字也不能定义。

Step4

覆写parse方法

image.png

image.png
  • 根据chrome中查看到每个item内容都在红框中这个标签内,我们可以右键选择copy xpath(xpath知识可以google两分钟就会)进行xpath选取
  • 获取下一页url,同样找到下一页的xpath。这里我是把最下面的"上一页,下一页 页码"都拿来。因为下一页这个标签总在倒数第二个就可以使用pages[-2]获取下一页的url
  • for循环处理每个列表列的内容使用parse_item方法处理
  • 最后yield Request(nextPageUrl, callback=self.parse)再次请求下一页的内容,依然使用parse方法处理这样循环直到最后一页
    parse_item代码:
    image.png

Step5

设置settings.py我们需要一个存放路径及格式

image.png

Step6

到该项目的目录下在终端执行scrapy crawl name(step3中所说的name='id97'),也可将命令直接放在python文件中进行执行

image.png

至此这个爬虫就基本结束了。settings.py中还有一些优化配置网上还是比较多的。可以自行配置试试看
源代码:https://github.com/EasonHolmes/Spider_Movie

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型,这里记录简单学...
    bomo阅读 2,160评论 1 11
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,760评论 4 46
  • 1 安装Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘...
    superzhan阅读 1,444评论 0 11
  • 竹叶竹枝竹爬节, 松针松果松满桠。 恋君八年如八日, 密降藤萝不嫌多。 思君八日似八年, 苦心秤砣不移挪。 此生无...
    喜诗的_苍梧阅读 222评论 4 2
  • 这一个礼拜真不经的个过啊!又到礼拜五了,儿子最喜欢礼拜五了,不用写作业,明天还不用上学,可这个礼拜就...
    b88e3d08d5fb阅读 148评论 0 0