爬虫框架Scrapy的学习记录

本次实验以爬取美剧天堂最近更新页面的美剧名字为目的 https://www.meijutt.com/new100.html

1、环境

  • Centos7 x64
  • python2或者python3(本次实验用python3版本)
  • virtualenvwrapper 虚拟环境

2、安装Scrapy

mkvirtualenv learnScrapypython3 --python=python3 #创建一个python3版本的虚拟环境
cd ~/.virtualenvs/learnScrapypython3/
pip install scrapy
pip list 

安装Scrapy后会自动安装如下模块:

(learnScrapypython3) [root@vps movie]# pip list
Package Version


asn1crypto 0.24.0
attrs 18.2.0
Automat 0.7.0
cffi 1.11.5
constantly 15.1.0
cryptography 2.4.2
cssselect 1.0.3
hyperlink 18.0.0
idna 2.8
incremental 17.5.0
lxml 4.2.5
parsel 1.5.1
pip 18.1
pyasn1 0.4.4
pyasn1-modules 0.2.2
pycparser 2.19
PyDispatcher 2.0.5
PyHamcrest 1.9.0
pyOpenSSL 18.0.0
queuelib 1.5.0
Scrapy 1.5.1
service-identity 18.1.0
setuptools 40.6.3
six 1.12.0
Twisted 18.9.0
w3lib 1.19.0
wheel 0.32.3
zope.interface 4.6.0

3、创建项目

scrapy startproject movie
cd movie
scrapy genspider meiju meijutt.com

此时整个项目目录结构如下:

/root/.virtualenvs/learnScrapypython3
				├── bin
				├── include
				├── lib
				└── movie
					├── movie
					│   ├── __init__.py
					│   ├── items.py
					│   ├── middlewares.py
					│   ├── pipelines.py
					│   ├── __pycache__
					│   ├── settings.py
					│   └── spiders
					│       ├── __init__.py
					│       ├── meiju.py
					│       └── __pycache__
					└── scrapy.cfg		

因为之前有学过Django,可以看出上面这个目录结构和django的文件目录结构非常相似。
目录文件说明:

下文用./ 代替/root/.virtualenvs/learnScrapypython3/

  • ./bin ./include ./lib是创建虚拟环境时生成的,暂时不用管
  • ./scrapy.cfg 项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。目前只记录爬虫setting文件的路径和爬虫程序的名字
  • ./movie是存放整个爬虫文件的地方
  • ./movie/items.py 设置数据存储模板,用于结构化数据,类似于Django的model.py文件
  • ./movie/pipelines.py 数据处理行为,本次实验:把爬取的信息存到一个文件里
  • ./movie/setting.py 配置文件,如:递归的层数、并发数,延迟下载等
  • ./movie/spiders/ 爬虫目录,如:创建文件,编写爬虫规则
  • ./movie/middlewares.py 中间件,处理xxx与xxx请求和相应(爬虫、调度、下载器、引擎)

4、修改爬虫程序的各个文件

  • ./movie/items.py:
# -*- coding: utf-8 -*-
  
# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class MovieItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    # pass
    name = scrapy.Field()
  • 爬虫文件./movie/spiders/meiju.py:
# -*- coding: utf-8 -*-
import scrapy
from movie.items import MovieItem


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值