Python 网络数据采集
什么是网络数据采集
在互联网上进行自动数据采集这件事和互联网存在的时间差不多一样长。虽然网络数据采集并不是新术语,但是多年以来,这件事更常见的称谓是网页抓屏(screen scraping)、数据挖掘(data mining)、网络收割(Web harvesting)或其他类似的版本。今天大众好像更倾向于用“网络数据采集”,因此我在本书中使用这个术语,不过有时会把网络数据采集程序称为网络机器人(bots)。
理论上,网络数据采集是一种通过多种手段收集网络数据的方式,不光是通过与 API交互(或者直接与浏览器交互)的方式。最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML表单或其他网页文件),然后对数据进行解析,提取需要的信息。
实践中,网络数据采集涉及非常广泛的编程技术和手段,比如数据分析、信息安全等。本书将在第一部分介绍关于网络数据采集和网络爬行(crawling)的基础知识,一些高级主题放在第二部分介绍。
为什么要做网络数据采集
如果你上网的唯一方式就是用浏览器,那么你其实失去了很多种可能。虽然浏览器可以更方便地执行 JavaScript,显示图片,并且可以把数据展示成更适合人类阅读的形式,但是网络爬虫收集和处理大量数据的能力更为卓越。不像狭窄的显示器窗口一次只能让你看-个网页,网络爬虫可以让你一次查看几千甚至几百万个网页。
另外,网络爬虫可以完成传统搜索引擎不能做的事情。用Google 搜索“飞往波士顿最便宜的航班”,看到的是大量的广告和主流的航班搜索网站。Google 只知道这些网站的网页会显示什么内容,却不知道在航班搜索应用中输入的各种查询的准确结果。但是,设计较好的网络爬虫可以通过采集大量的网站数据,做出飞往波士顿航班价格随时间变化的表,告诉你买机票的最佳时间。
你可能会问:“数据不是可以通过 AP 获取吗?”(如果你不熟悉 AP,请阅读第 4章。)确实,如果你能找到一个可以解决你的问题的 API,那会非常给力。它们可以非常方便地向用户提供服务器里格式完好的数据。当你使用像Twiter或维基百科的 API时,会发现一个 API同时提供了不同的数据类型。通常,如果有 API可用,API确实会比写一个网络爬虫程序来获取数据更加方便。但是,很多时候你需要的 AP并不存在,这是因为
你要收集的数据来自不同的网站,没有一个综合多个网站数据的API;你想要的数据非常小众,网站不会为你单独做一个 API;
一些网站没有基础设施或技术能力去建立 API。
即使 API已经存在,可能还会有请求内容和次数限制,API能够提供的数据类型或者数据格式可能也无法满足你的需求。
这时网络数据采集就派上用场了。你在浏览器上看到的内容,大部分都可以通过编写Python 程序来获取。如果你可以通过程序获取数据,那么就可以把数据存储到数据库里。如果你可以把数据存储到数据库里,自然也就可以将这些数据可视化。
显然,大量的应用场景都会需要这种几乎可以毫无阻碍地获取数据的手段:市场预测、机器语言翻译,甚至医疗诊断领域,通过对新闻网站、文章以及健康论坛中的数据进行采集
和分析,也可以获得很多好处。
甚至在艺术领域,网络数据采集也为艺术创作开辟了新方向。由Jonathan Haris 和 SepKamvar 在 2006 年发起的“我们感觉挺好”(We Feel Fine,http://wefeelfne.org/)项目,从大量英文博客中抓取许多以“I feel”和“I am feeling”开头的短句,最终做成了一个很受大众欢迎的数据可视图,描述了这个世界每天、每分钟的感觉。
无论你现在处于哪个领域,网络数据采集都可以让你的工作更高效,帮你提升生产力,甚至开创一个全新的领域。
本书采用简洁强大的Pyton 语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。第一部分重点介绍网络数据采集的基本原理:如何用Python 从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。本书适合需要采集 Web 数据的相关软件开发人员和研究人员阅读。
-
树芽读书小程序
“树芽读书”毕业设计项目中,我们可以探讨微信小程序在图书阅读领域的应用,以及它可能涉及的技术和设计要点。微信小程序的设计需要遵循微... 844 0 24-10-27 -
FileZilla多线程ftp客户端v3.44.1 官方简体中文版
FileZilla是一个快速,实用多功能和界面直观的FTP客户端。FileZilla 是一个免费的 FTP 客户端软件,虽然它是免费软件,可功能却一点也不... 629 0 21-07-07 -
微信小程序文件上传客户的+java服务器端源码
图片上传接口wx.uploadFile(OBJECT)将本地资源上传到开发者服务器。如页面通过 wx.chooseImage 等接口获取到一个本地资源的临时文件路径... 1184 0 24-10-31 -
office卸载系列工具集
在日常工作学习中,相信不少小伙伴都碰到过,微软Office安装问题。特别是更换版本,或者重装Office时,经常会出现些奇奇怪怪的情况。比如,... 745 0 25-03-29 -
CSS禅意花园
本书作者是世界著名的网站设计师,书中的范例来自网站设计领域最著名的网站——CSS Zen Garden(CSS禅意花园)。全书分为两个主要部分。... 890 0 24-05-24 -
Cloudbox_装机工具箱_2.22.4.28
cloudbox工具箱是一款使用免费的多功能工具箱软件,内置多种软件工具,可以一键激活多种系统,查看最新版本软件,功能强大。cloudbox工具箱... 979 0 25-02-09 -
Safari浏览器内容被地址栏、菜单栏或工具栏遮挡导致的兼容问题
页面很多元素使用的是Fixed定位,当在手机端的Safari浏览器、安卓浏览器等测试时,会出现顶部元素、底部元素 被地址栏、菜单栏或工具栏遮... 1030 0 25-04-07 -
AI-Chat桌面版 windows端
AI-Chat桌面版专业的人工智能软件,该软件支持智能对话、论文写作、智能绘画以及语音合成等,本站提供的是这款软件的安装版本,这是一款非... 1055 0 24-12-14
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~