基于Python的股票数据爬虫程序设计
2018-04-19彭莉
彭莉
引言
Python是一种面向对象、解释型、带有动态语义的高级程序设计语言,其语法简洁清晰,具有丰富和强大的类库。Python语言支持覆盖信息技术各领域的10万个函数库,依靠开源快速开发,形成了全球最大的编程社区。
基于Python的爬虫与其他语言相比的有很多优势,本文主要是对Python爬虫技术进行阐述。通过爬去某个网站的所有新闻这个案例,来进一步阐释Python爬虫技术的简洁。
一、爬虫的概念
网络爬虫(也称为网络蜘蛛、网络机器人,在FOAF社区中,更常被称为网络追逐者)是根据某些规则自动从万维网获取信息的程序或脚本,不常用的其他名称包括蚂蚁、自动索引、仿真程序或蠕虫。
二、爬虫的基本流程
发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
獲取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、Json字符串、二进制数据(如图片视频)等类型。
解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。
(一)Request和Response
Request:浏览器就发送消息给该网址所在的服务器,这个过程叫做HTTPRequest。Response:服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应处理,然后把消息回传给浏览器。这个过程叫作HTTPResponse。浏览器收到服务器的Response信息后,会对信息进行相应处理,然后展示。
(二)抓取数据类型
网页文本:如HqTVIL文档、Json格式文本等。图片:获取到的是二进制文件,保存为图片格式。视频:同为二进制文件,保存为视频格式即可。And so on:只要是能请求到的,都能获取。
(三)解析方式
直接处理,Json解析,正则表达式,BeautifulSoup库PyQuery库和XPath库。
(四)保存数据
文本:纯文本、Json、Xml等。关系型数据库:如MySQL、Oracle、SQL Server等具有结构化表结构形式存储。非关系型数据库:如MongoDB、Redis等Key-Value形式存储。二进制文件:如图片、视频、音频等等直接保存成特定格式即可。
三、案例:爬取某个网站股票信息