愚公移山·44
最近一周出去旅游,把正事给忘了。
学习进程
今天学的是scrapy对于scrapy我还真的是第一次认真的接触,它于之前我所接触的网络爬虫的写法完全不一样,(感觉用scrapy才是一个程序员该有的样子)当然也是初次体验这种写法感觉还是挺陌生的,有好多的东西都感觉根本没有接触过。
而且目前我所接触的学习资料也是非常有限,学习资料也是一概而过,今天就先把scrapy的基本情况给大家介绍一下吧,我感觉今天的给读者也不会有太大的帮助。
scrapy的安装
最简单的安装方式:在window操作系统中打开终端输入 pip install scrapy 插件比较多需要等待一段时间。
如果在pip install scrapy安装的过程中出现部分插件与window不兼容的情况(在window7 中会有少许的插件与操作系统不兼容)那么我们需要手动下载,给各位一个网站在网站中查找自己所缺少的插件选择相应的版本下载,在下载完成之后,先在终端移动到文件的位置,输入pip install 。。。。 你所下载的文件的全部名称。
之后再次输入 pip install scrapy,这样基本上就是差不多了。
scrapy的入门使用
首先我们在终端输入
scrapy startproject xxxx xxxx为爬虫工程的名称
You can start your first spider with:
cd yey58
scrapy genspider example example.com
然后cd 进入爬虫工程内
输入 scrapy genspider spider_city_58 58.com
scrapy genspider 爬虫名称 所要爬取的网站
然后会得到一下的信息:
scrapy genspider spider_city_58 58.com
Created spider 'spider_city_58' using template 'basic' in module:
yey58.spiders.spider_city_58
你会在终端得到以上的信息,然后根据信息,进行文件的移动(忽略我的文件名称 yey58)
下面是scrapy命令生成的文件结构。
- scrapy.cfg
- yey58
- middlewares.py
- pipelines.py
- settings.py
- spiders/
- init__.py
其中,(以及一般的Scrapy使用)中比较重要的几个文件如下所示。
items.py:该文件定义了待抓取域的模型。
settings.py:该文件定义了一些设置,如用户代理、爬取延时等。
spiders/:该目录存储实际的爬虫代码。
另外,Scrapy 使用scrapy.cfg设置项目配置,pipelines.py处理要
抓取的域,middlewares.Py控制请求和响应中间件。
# -*- coding: utf-8 -*-
import scrapy
class SpiderCity58Spider(scrapy.Spider):
name = 'spider_city_58'
allowed_domains = ['58.com']
start_urls = ['http://58.com/']
def parse(self, response):
print('我进入了解析器')
# scrapy自动给生成的python爬虫
# 我们使用scrapy的启动命令的时候,需要知道他的name属性
# 再利用name属性去决定启动的那个爬虫
# 首先 从start_url里面读取链接
# 然后 自动调用start_request函数
# 最后 此函数请求的结果自动调用默认的解析器parse
# 爬虫名称:name属性
# 启动方法:start_requests()
# 默认解析器方法:pares()
# 启动链接列表:start_urls属性
然后我们创建一个python文件main用于将文件运行:
from scrapy import cmdline
cmdline.execute('scrapy crawl spider_city_58'.split())
#['scrapy', 'crawl', 'spider_city_58']
上文中的两种方法都可以
运行的最后结果如图所示