Python爬虫框架Scrapy初识
本帖最后由 wesley.chen 于 2018-12-3 11:06 编辑Scrapy简介Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
详细教程可以查看Scrapy文档
Scrapy的安装scrapy需要运行在python2.7、python3.3或者更高的版本上。可先利用python -V 查看自己的python版本。
http://pj53h3cp0.bkt.clouddn.com/18-12-3/12401462.jpg
一般推荐使用pip进行安装(如果未安装pip,需要先安装pip)
pip install scrapy安装完成之后,输入:scrapy,当出现如下输出,说明安装完成:
http://pj53h3cp0.bkt.clouddn.com/18-12-3/77385015.jpg
备注:
scrapy以来的一些包:
[*]lxml:一种高效的XML和HTML解析器,
[*]PARSEL:一个HTML / XML数据提取库,基于上面的lxml,
[*]w3lib:一种处理URL和网页编码多功能辅助
[*]twisted,:一个异步网络框架
[*]cryptography and pyOpenSSL,处理各种网络级安全需求
以上包需要的最低版本:
[*]Twisted 14.0
[*]lxml 3.4
[*]pyOpenSSL 0.14
创建项目在进行具体的爬取之前,我们需要先利用命令行创建项目
scrapy startproject qichacha输入命令后,出现以下提示,则代表创建成功
http://pj53h3cp0.bkt.clouddn.com/18-12-3/3175501.jpg
创建你的爬虫脚本我们可以利用一下命令快速创建你的爬虫模板
scrapy genspider qcc www.qichacha.com你可以看到如下目录结构:
http://pj53h3cp0.bkt.clouddn.com/18-12-3/74207835.jpg
然后开始就可以在qcc.py中开始我们的爬虫逻辑了。
一个简单的爬虫实例:
# -*- coding: utf-8 -*-import scrapy
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
from beianw.items import BeianwItem
class BeianSpider(scrapy.Spider):
name = 'beian'
allowed_domains = ['www.beianw.com']
start_urls = ['http://www.beianw.com/home/index/四川/1?t=2']
def parse(self, response):
company = response.css('.translist tr')
for v in company:
item = BeianwItem()
item['website'] = v.css('td a::text').extract()
item['companyName'] = v.css('td::text').extract()
item['icpNo'] = v.css('td::text').extract()
item['icpDate'] = v.css('td::text').extract()
yield item
# 递归爬取下一页的内容
next_page = response.css('.page-default a')
maxpage = len(next_page.css('::text').extract()) -1
if(next_page.css('::text').extract() == '下一页'):
next_page_href = next_page.css('::attr(href)').extract()
next_page = response.urljoin(next_page_href)
yield scrapy.Request(next_page, callback=self.parse)
运行爬虫脚本
scrapy crawl qcc
提取数据
[*]css选择器
[*]xpath选择器
[*]正则
页:
[1]