欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

scrapy 爬虫学习一

程序员文章站 2022-03-25 20:17:23
一:创建项目 scrapy startproject 项目名字,例子如下: 二:查看项目目录结构 Windows 下查看命令:tree /f 三:生成一个爬虫 scrapy genspider 爬虫名字 爬虫的网址,例子如下: 四:命令详细使用 这里的命令分为全局的命令和项目的命令,全局的命令表示可 ......

一:创建项目

scrapy startproject 项目名字,例子如下:

代码:scrapy startproject scrapy_test
结果如下:
new scrapy project 'scrapy_test', using template directory 'g:\mytoolsinstall\anaconda2\lib\site-packages\scrapy\templates\project', created in:
    f:\scrapy_test

you can start your first spider with:
    cd scrapy_test
    scrapy genspider example example.com

二:查看项目目录结构

windows 下查看命令:tree /f

 

# 首先 进入项目:cd scrapy_test
# 然后 tree /f
│  scrapy.cfg
│
└─scrapy_test
    │  items.py
    │  middlewares.py
    │  pipelines.py
    │  settings.py
    │  __init__.py
    │
    └─spiders
            __init__.py

 

三:生成一个爬虫

scrapy genspider 爬虫名字 爬虫的网址,例子如下:

代码:scrapy genspider baidu_sipder www.baidu.com
结果如下:
created spider 'baidu_sipder' using template 'basic' in module:
  scrapy_test.spiders.baidu_sipder

 

四:命令详细使用

 

这里的命令分为全局的命令和项目的命令,全局的命令表示可以在任何地方使用,而项目的命令只能在项目目录下使用

 

4.1:全局的命令有:
startproject、genspider、settings、runspider、shell、fetch、view、version

4.2:项目命令有:
crawl、check、list、edit、parse、bench

4.2:全局命令

4.1.1:startproject命令

这个命令没什么过多的用法,就是在创建爬虫项目的时候用

4.1.2:genspider命令

一:用于生成爬虫,这里scrapy提供给我们不同的几种模板生成spider,默认用的是basic,我们可以通过命令查看所有的模板
代码示例如下:
ps f:\scrapy_test> scrapy genspider -l
available templates:
  basic
  crawl
  csvfeed
  xmlfeed
  
二:当我们创建的时候可以指定模板,不指定默认用的basic,如果想要指定模板则通过 scrapy genspider -t 模板名字
代码示例如下:
ps f:\scrapy_test> scrapy genspider -t crawl zhihu_sipder zhihu.com
created spider 'zhihu_sipder' using template 'crawl' in module:
  scrapy_test.spiders.zhihu_sipder

4.1.3:settings命令

一:示例代码如下
ps f:\scrapy_test> scrapy settings -h
结果如下: usage ===== scrapy settings [options] get settings values options ======= --help, -h show this help message and exit --get=setting print raw setting value --getbool=setting print setting value, interpreted as a boolean --getint=setting print setting value, interpreted as an integer --getfloat=setting print setting value, interpreted as a float --getlist=setting print setting value, interpreted as a list global options -------------- --logfile=file log file. if omitted stderr will be used --loglevel=level, -l level log level (default: debug) --nolog disable logging completely --profile=file write python cprofile stats to file --pidfile=file write process id to file --set=name=value, -s name=value set/override setting (may be repeated) --pdb enable pdb on failure
二:拿一个例子进行简单的演示:(这里是我的这个项目的settings配置文件中配置了数据库的相关信息,可以通过这种方式获取,如果没有获取的则为none)
示例代码: ps f:\scrapy_test> scrapy settings --get=mysql_host
返回结果: none

4.1.4:runspider命令

这个和通过crawl启动爬虫不同,这里是scrapy runspider 爬虫文件名称
所有的爬虫文件都是在项目目录下的spiders文件夹中

4.1.5:shell命令

scrapy 爬虫学习一

4.1.6:fetch命令

scrapy fetch url地址 
该命令会通过scrapy downloader 讲网页的源代码下载下来并显示出来

这里有一些参数:
--nolog 不打印日志
--headers 打印响应头信息
--no-redirect 不做跳转

4.1.7:view命令

scrapy view url地址
该命令会讲网页document内容下载下来,并且在浏览器显示出来

因为现在很多网站的数据都是通过ajax请求来加载的,这个时候直接通过requests请求是无法获取我们想要的数据,
所以这个view命令可以帮助我们很好的判断

scrapy 爬虫学习一

4.1.8:version命令

查看版本信息,并查看依赖库的信息

4.2:项目命令有

4.2.1:crawl命令

这个是用去启动spider爬虫格式为:scrapy crawl 爬虫名字
这里需要注意这里的爬虫名字和通过scrapy genspider 生成爬虫的名字是一致的
代码示例如下: ps f:\scrapy_test> scrapy crawl baidu_sipder 2019-05-29 14:05:51 [scrapy.utils.log] info: scrapy 1.6.0 started (bot: scrapy_test) 2019-05-29 14:05:51 [scrapy.utils.log] info: versions: lxml 4.2.5.0, libxml2 2.9.8, cssselect 1.0.3, parsel 1.5.1, w3lib 1.20.0, twisted 18.7.0, python 2.7.15 |anaconda, inc.| (default, may 1 2018, 18:37:09) [msc v.1500 64 bit (amd64)], pyopenssl 18.0.0 (openssl 1.0.2p 14 aug 2018), cryptography 2.3.1, platform windows-10-10.0.16299 2019-05-29 14:05:51 [scrapy.crawler] info: overridden settings: {'newspider_module': 'scrapy_test.spiders', 'spider_modules': ['scrapy_test.spiders'], 'robotstxt_obey': true, 'bot_name': 'scrapy_test'} 2019-05-29 14:05:51 [scrapy.extensions.telnet] info: telnet password: 21038d7992503f4c 2019-05-29 14:05:51 [scrapy.middleware] info: enabled extensions: ['scrapy.extensions.logstats.logstats', 'scrapy.extensions.telnet.telnetconsole', 'scrapy.extensions.corestats.corestats'] 2019-05-29 14:05:52 [scrapy.middleware] info: enabled downloader middlewares:

4.2.2:check命令

用于检查代码是否有错误,scrapy check

示例代码如下: ps f:\scrapy_test> scrapy check ---------------------------------------------------------------------- ran 0 contracts in 0.000s ok

4.2.3:list命令

scrapy list列出所有可用的爬虫
示例代码如下: ps f:\scrapy_test> scrapy list baidu_sipder zhihu_sipder

 

参考连接:https://www.cnblogs.com/zhaof/p/7183220.html