网络爬虫开发常用框架

  爬虫框架就是一些爬虫项目的半成品,可以将一些爬虫常用的功能写好。然后留下一些接口,在不同的爬虫项目中,调用适合自己项目的接口,再编写少量的代码实现自己需要的功能。因为框架已经实现了爬虫常用的功能,所以为开发人员节省了很多精力与时间。

1、Scrapy爬虫框架

  这是一套比较成熟的python爬虫框架,简单轻巧,并且非常方便。可以高效率的爬取Web页面并从页面中提取结构化的数据。Scrapy是一套成熟的框架,所以在使用时不需要担心收取费用的问题。其网址为:https://scrapy.org      可以看下他们的开发文档

  源码地址:https://github.com/binux/pyspider/releases

  开发文档地址为:http://docs.pyspider.org/

2、Crawley 爬虫框架

  Crawley也是python开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。特性如下:

    基于Eventlet构建的高速网络爬虫框架

    可以将数据存储在关系型数据库中,如mysql

    可以将爬取的数据导入为Json、XML格式

    支持非关系数据跨

    支持命令行工具

    可以使用喜欢的工具进行数据的提取

    支持使用Cookie登录或访问那些只有登录才可以访问的网页

    简单易学(hope so)

  官网地址为:http://project.crawley-cloud.com

3、PySpider爬虫框架

  相对于Scrapy框架而言,PySpider框架是一支新秀。它采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器、任务监视器、项目管理器以及结果查看器。有如下特性:

  Python脚本控制,可以用任何你喜欢的html解析包

  Web界面编写调试脚本、起停脚本、监控执行状态、查看活动历史、获取结果产出

  支持RabbitMQ、Beanstalk、Redis和Kombu作为消息队列

  支持抓取JavaScript的页面

  强大的调度控制,支持超时重爬及优先级设置

  组件可替换,支持单机/分布式部署,支持Docker部署

4、Scrapy 爬虫框架的使用

(1)搭建

  01 安装Twisted模块  计算机需要有c++ 14.0的相关支持,可以我的网盘里下载

  02 安装Scrapy模块  直接安装即可

  03 安装pywin32模块  直接安装即可

(2)创建Scrapy项目

  在指定文件夹内打开命令行,输入:   scrapy startproject scrapyDemo,即可创建一个名为‘scrapyDemo’的项目 

(3)创建爬虫

  在创建爬虫时,首先需要创建一个爬虫模块的文件,该文件需要放置在spiders文件夹中。爬虫模块是用于从一个网站或多个网站中爬取数据的类,它需要继承scrapy.Spider类,下面通过一个例子,实现爬取网页后将网页的代码以html文件保存到项目文件夹当中,如下:

import scrapy

class QuotesSpider(scrapy.Spider):
    name = 'quotes' #定义爬虫的名称

    def start_requests(self):
        #设置爬取目标的地址
        urls=[
            'https://www.juzimi.com/article/23959',
            'https://www.juzimi.com/article/23959?page=1',
            'https://www.juzimi.com/article/23959?page=2'
        ]
        #获取所有地址,有几个地址发送几次请求
        for url in urls:
            #发送网络请求
            yield scrapy.Request(url=url,callback=self.parse)

    def parse(self, response):
        #获取页数
        page=response.url.split('/')[-2]
        #根据页数设置文件名称
        filename='quotes-%s.html'%page
        #写入文件的模式打开文件,如果没有该文件将创建该文件
        with open(filename,'wb') as f:
            #向文件中写入获取的html代码
            f.write(response.body)
        #输出保存文件的名称
        self.log('Saved file %s'%filename)

 

  在运行Scrapy 所创建的爬虫项目时,需要在命令窗口中输入“scrapy crawl quotes”,其中“quotes”是自己定义的爬虫名称。

  除了使用在命令窗口中启动外,还可以在程序中启动爬虫的API,也就是CrawlerProcess类。首先需要在CrawlerProcess初始化时传入项目的settings信息,然后在crawl()方法中传入爬虫的名称,最后通过start()方法启动爬虫,代码如下:

#导入CrawlerProcess类
from scrapy.crawler import CrawlerProcess
#导入获取项目设置信息
from scrapy.utils.project import get_project_settings

#程序入口
if __name__ == '__main__':
    #创建CrawlerProcess类对象并传入项目设置信息参数
    process=CrawlerProcess(get_project_settings())
    #设置需要启动的爬虫名称
    process.crawl('quotes')
    #启动爬虫
    process.start()

 

(4)获取数据

  Scrapy爬虫框架,可以通过特定的CSS或者XPath表达式来选择HTML文件中的某一处,并且提取出相应的数据。

  1、CSS提取数据

  使用CSS提取HTML文件中的某一处数据时,可以指定HTML文件中的标签名称,示例代码如下:

response.css('title').extract()

 

转载于:https://www.cnblogs.com/start20180703/p/10442587.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网络爬虫是一种自动化程序,可以在互联网上自动收集和提取信息。它们可以从网站上自动抓取数据,分析和处理数据,并将其存储到数据库中或使用其他方式进行处理。 Python是一种非常流行的编程语言,它具有易于学习和使用的特点,因此它成为了网络爬虫的一种常用语言。Python提供了许多常用网络爬虫库和框架,例如BeautifulSoup、Scrapy、Requests等。 在学习网络爬虫之前,我们需要了解一些基本的HTTP协议和HTML语言。HTTP是一种用于在Web浏览器和服务器之间传输数据的协议。HTML是一种用于创建网页的标记语言。 在网络爬虫的学习过程中,我们需要了解一些基本的爬虫概念,例如爬虫种类、爬虫流程、爬虫注意事项等。 爬虫种类: 1. 通用爬虫:可以抓取任何网站的数据,例如Google、Bing等搜索引擎。 2. 聚焦爬虫:只抓取特定网站或特定网页的数据,例如淘宝网、百度贴吧等。 3. 增量式爬虫:只抓取新增加的数据,例如每天抓取新闻网站的新闻数据。 爬虫流程: 1. 发送HTTP请求:爬虫程序向目标网站发送HTTP请求,获取网页内容。 2. 解析网页内容:爬虫程序对网页内容进行解析,提取所需数据。 3. 存储数据:爬虫程序将提取的数据存储到数据库或文件中。 爬虫注意事项: 1. 遵守Robots协议:Robots协议是一个标准,用于告诉爬虫程序哪些网页可以抓取,哪些网页不能抓取。 2. 避免频繁访问同一网站:频繁访问同一网站可能会导致网站崩溃,因此需要设置适当的时间间隔。 3. 避免爬虫陷阱:有些网站会设置一些陷阱,例如无限循环的链接,需要注意避免。 总之,学习网络爬虫需要掌握基本的编程知识和网络知识,同时需要了解一些基本的爬虫概念和注意事项。Python提供了许多常用网络爬虫库和框架,可以帮助我们更加便捷地进行网络爬虫开发

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值