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

环境 mac python3.6.1 pycharm

Step1

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

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

Step2

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

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

Step3

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

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

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

Step4

覆写parse方法

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

Step5

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

Step6

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

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

更多推荐

scrapy 爬电影 抓取数据