爬取东方财富网数据,爬虫如何采集东方财富

目前学习资料最多的爬虫框架(工具)主要有以下几个:

1.Scrapy

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。

Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。其吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。

Scrapy主要包括了以下组件:

引擎(Scrapy): 用来处理整个系统的数据流处理, 触发事务(框架核心)调度器(Scheduler): 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址下载器(Downloader): 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)爬虫(Spiders): 爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面项目管道(Pipeline): 负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。下载器中间件(Downloader Middlewares): 位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求及响应。爬虫中间件(Spider Middlewares): 介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出。调度中间件(Scheduler Middewares): 介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

2.PySpider

PySpider是binux做的一个爬虫架构的开源化实现。主要的功能是:

抓取、更新调度多站点的特定的页面需要对页面进行结构化信息提取灵活可扩展,稳定可监控

而这也是绝大多数python爬虫的需求 —— 定向抓取,结构化解析。但是面对结构迥异的各种网站,单一的抓取模式并不一定能满足,灵活地抓取控制是必须的。为了达到这个目的,单纯的配置文件往往不够灵活,于是,通过脚本去控制抓取是最后的选择。

而去重调度,队列,抓取,异常处理,监控等功能作为框架,提供给抓取脚本,并保证灵活性。最后加上web的编辑调试环境,以及web任务监控,即成为了这套框架。

3.Requests

Requests的宣传语:“Requests是一个优雅而简单的 Python HTTP 库,专为人类构建。”,看上去就很强大。

主要的功能是:

保持活动和连接池国际域名和 URL具有 Cookie 持久性的会话浏览器 SSL 验证自动内容解码基本/摘要认证优雅的键/值 Cookie自动减压Unicode 响应体HTTP(S) 代理支持多部分文件上传流式下载连接超时分块请求.netrc支持

4.Selenium

严格说来,selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。Selenium Core由一种指定格式的HTML文件驱动,在一定程度上增强了测试套件(Test Suite)的可读性。Selenium Remote Control允许测试人员使用常见的语言(自然包括C#等.NET语言)编写测试代码,并支持不同操作系统下的各种主流浏览器。Selenium Grid的作用是将测试分发至多台机器,这样便可大大加快测试速度。与WatiN相同,Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。

5.DrissionPage

合并Requests和Selenium两者的大部分功能,还以网页为单位封装了常用功能,简化了 Selenium的操作和语句,在用于网页自动化操作时,减少考虑细节,专注功能实现,使用更方便。一切从简,尽量提供简单直接的使用方法,对新手更友好。

特性

代码高度集成,以简洁的代码为第一追求。页面对象可在 Requests和Selenium模式间任意切换,保留登录状态。极简单但强大的元素定位语法,支持链式操作,代码极其简洁。两种模式提供一致的选择 API,使用体验一致。人性化设计,集成众多实用功能,大大降低开发工作量。

综上,Scrapy和PySpider构建系统性的数据采集比较好,而我们只是单一的获取几个单一的股票数据,从初学者的角度出发还是选用Selenium来实现需求。

一、安装Selenium

pip install selenium

二、选择浏览器驱动

Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用,这里我们选择谷歌浏览器驱动。下载地址:http://chromedriver.storage.googleapis.com/index.html。注意下载与自己电脑安装的谷歌浏览器相同的版本,并配置环境变量。

三、获取东方财富个股人气榜数据

# -*- coding: utf-8 -*-from selenium import webdriverbrowser = webdriver.Chrome()browser.get(‘http://guba.eastmoney.com/rank/’)print(browser.page_source) # browser.page_source是获取网页的全部htmlbrowser.close()

未经允许不得转载:股市行情网 » 爬取东方财富网数据,爬虫如何采集东方财富

相关文章

评论 (0)