scrapy简介:
Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试
安装方式:
这里选择安装在了python安装文件夹内,而不是项目内
第二中方式:去官网下载安装包 ,Terminal窗口cmd命令定位到该文件夹,pip install 安装包
安装后,新建文件任意名称,如引用不报错,及安装成功
自动生成项目文件:
使用 scrapy startproject name
自动创建项目
如果出现 scrapy 既不是项目内也不是项目外。。。。,需要你去配置环境变量。
环境变量及是在windows系统中为一个程序提供路径,这样就可以直接调用。下面是我的安装位置。在path中添加即可。
命令运行后的文件内容,至于都是什么,大家可以看scrapy中文,在原官网的中文翻译已经很久没更新了,而且你下载他的例子也不能运行,打开他的reademe文件,可以看到说明部分网站已经停用。下面是国内中文连接http://www.scrapyd.cn/doc/139.html
scrapy简单测试:
随意创建py文件如下
# -*- coding: utf-8 -*-
import scrapy
class mingyanSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://lab.scrapyd.cn/',
]
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'内容': quote.css('span.text::text').extract_first(),
'作者': quote.xpath('span/small/text()').extract_first(),
}
next_page = response.css('li.next a::attr("href")').extract_first()
if next_page is not None:
yield scrapy.Request(next_page, self.parse)
运行指令: runspider mingyanSpider.py,运行你创建的蜘蛛。-o mingyan.json 将刚才爬到的内容存到json中。
D:\python\Scrapy1>scrapy runspider mingyanSpider.py -o mingyan.csv
标准的爬虫项目:
在spider下面编写py文件
# -*- coding: utf-8 -*-
import scrapy
class DmozSpider(scrapy.spiders.Spider):
name = "mingyan2"
def start_requests(self):
urls = [
'http://lab.scrapyd.cn/page/1/',
'http://lab.scrapyd.cn/page/2/',
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'mingyan-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('保存文件: %s' % filename)
运行命令:scrapy crawl mingyan2 即可,如果出现
Unknown command: crawl 提示 ,说明cmd路径不对,要定位到含有scrapy.cfg的文件夹。例如我的项目,就可以运行了。
爬虫结果: