网页抓取

网页抓取（）是一种从网页上获取页面内容的计算机软件技术。通常透過软件使用低级别的超文本传输协议模仿人类的正常访问。

网页抓取和网页索引极其相似，其中网页索引指的是大多数搜索引擎采用使用的机器人或网络爬虫等技术。与此相反，网页抓取更侧重于转换网络上非结构化数据（常见的是HTML格式）成为能在一个中央数据库和电子表格中储存和分析的结构化数据。网页抓取也涉及到网络自动化，它利用计算机软件模拟了人的浏览。网页抓取的用途包括在线的价格比较，联系人抓取，气象数据监测，网页变化检测，科研，混搭和Web数据集成。

网页抓取软件可以直接通过超文本传输协议或Web浏览器访问全球网络。虽然网页抓取可以由软件用户手动完成，但通常指的是使用机器人或网络爬虫来实现的自动化过程。这是一种复制形式，其中特定数据通常被收集并从网页中复制到本地中央数据库或电子表格中，以供以后检索或分析。

抓取网页包括获取网页并从中提取数据。获取是下载页面（当用户查看页面时，浏览器会执行此操作）。因此，网络爬行是网页抓取的主要组成部分，用于获取以供以后处理的页面。一旦获取，提取就可以进行。页面的内容可以进行解析、搜索和重新格式化，并将其数据复制到电子表格或加载到数据库中。网页抓取工具通常会从页面中提取某些内容，以便在其他地方将其用于其他目的。例如，查找和复制名称和电话号码、公司及其URL或电子邮件地址到列表中（联系抓取）。

除了联系抓取，网页抓取还用作用于Web索引、Web挖掘和数据挖掘、在线价格变动监控和价格比较、产品评论抓取（用于监控竞争对手）、收集房地产列表、天气数据监控、网站更改检测、研究、在线存在和声誉追踪、Web混搭和网页数据集成的应用程序的组成部分。

网页是使用基于文本的标记语言（HTML和XHTML）构建的，通常以文本形式包含大量有用的数据。但是，大多数网页是为人类用户设计的，而不是为便于自动化使用而设计的。因此，已经开发了专门的工具和软件来促进对网页的抓取。

较新形式的网页抓取涉及监控来自Web服务器的数据源。例如，JSON通常用作客户端和Web服务器之间的传输机制。

有一些网站使用方法来防止网页抓取，例如检测并阻止爬虫程序浏览（查看）其页面。作为回应，一些网页抓取系统依赖于使用DOM解析、计算机视觉和自然语言处理技术来模拟人类浏览，以便获取离线解析网页内容。

技术层面 
网络抓取用于自动化获取万维网上的信息

人工复制与粘贴：最好的网页抓取技术也比不上人类的手工复制与粘贴，尤其是在某些网站采取技术手段禁止自动化网页抓取的情况下，人工的复制与粘贴就成了唯一的解决方案。

文本搜索与正则表达式：文本搜索并且配合正则表达式可以有效的从页面上提取需要的内容。在基于UNIX的系统上可以使用grep，在其他平台或其他编程语言（例如Perl，Python）中也有相应的命令或语法。

基于HTTP编程：无论是静态网页还是动态网页均可以通过发送HTTP请求给服务器来获得，所以可以通过直接进行socket编程来实现。

HTML语法分析器：很多网站都是使用数据库来存储他们的数据，用户访问的时候再通过程序自动按照指定的格式生成，由于生成的这些网页都采用了相同的的格式或者模板等，所以可以通过对获取到的HTML页面使用语法分析器进行语法分析，然后就可以使用HTML标签来提取需要的内容。使用HTML语法分析器同文本搜索与正则表达式相比较程序更加的健壮，也免于构造复杂的正则表达式。

著名工具

 Apache Camel
 archive.is
 Automation Anywhere
 Convertigo
 cURL
 Data Toolbar
 Diffbot
 Firebug
 Greasemonkey
 Heritrix
 HtmlUnit
 HTTrack
 iMacros
 Import.io
 Jaxer
 Node.js
 nokogiri
 PhantomJS
 ScraperWiki
 Scrapy
 Selenium
 SimpleTest
 UiPath
 watir
 Wget
 Wireshark
 WSO2 Mashup Server
 Yahoo! Query Language (YQL)

参见

 网络爬虫

网页抓取