前段时间学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
从源码可以看到name
和start_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
中还有一些优化配置网上还是比较多的。可以自行配置试试看
源代码:https://github.com/EasonHolmes/Spider_Movie