Back to Question Center
0

Semalt:如何应对Web数据挑战?

1 answers:

公司为业务应用程序获取数据. 公司正在寻找更快,更好,更有效的技术来定期提取数据. 不幸的是,网络搜刮技术性很强,需要相当长的时间才能掌握. 网络的动态性是造成困难的主要原因 - best long term insurance policy. 另外,相当多的网站都是动态网站,而且非常难以抓取.

Web Scraping挑战

web提取中的挑战源于每个网站都是唯一的,因为它与其他所有网站. 因此,编写一个能够从多个网站提取数据的单个数据抓取程序实际上是不可能的. 换句话说,您需要一个有经验的程序员团队来为您的每个目标站点编写您的网络抓取应用程序. 为每个网站编写应用程序不仅繁琐,而且成本高昂,特别是对于需要从数百个网站中提取数据的组织. 事实上,网络抓取已经是一项艰巨的任务. 如果目标网站是动态的,则难度会进一步加大.

下面概述了用于遏制从动态网站提取数据的困难的一些方法.

1. 代理配置

一些网站的响应取决于地理位置,操作系统,浏览器和用于访问它们的设备. 换句话说,在这些网站上,亚洲访问者可访问的数据与美国访问者访问的内容不同. 这种功能不仅会混淆网页抓取工具,还会使抓取工作变得有点困难,因为他们需要弄清楚抓取的确切版本,而且这个指令通常不在他们的代码中.

排序问题通常需要一些手工工作来知道一个特定的网站有多少个版本,并且配置代理来从特定版本收集数据. 此外,对于位置特定的站点,您的数据刮取器将不得不部署在与目标网站版本相同的位置的服务器上

2. 浏览器自动化

这适用于动态代码非常复杂的网站. 这是通过使用浏览器呈现所有页面内容完成的. 这种技术被称为浏览器自动化. Selenium可以用于这个过程,因为它可以从任何编程语言驱动浏览器.

Selenium实际上主要用于测试,但它完美地用于从动态网页提取数据. 该页面的内容首先由浏览器呈现,因为这需要处理反向工程JavaScript代码以获取页面内容的挑战.

呈现内容时,将其保存到本地,并在稍后提取指定的数据点. 这种方法唯一的问题是它容易出现很多错误.

3. 处理发布请求

有些网站在显示所需数据之前实际上需要某些用户输入. 例如,如果您需要关于特定地理位置的餐馆的信息,某些网站可能会在您访问所需的餐馆列表之前要求提供所需位置的邮政编码. 这对于爬虫来说通常是困难的,因为它需要用户输入. 但是,为了解决这个问题,可以使用你的抓取工具的适当参数来创建帖子请求,以便到达目标页面.

4. 制造JSON URL

一些网页需要AJAX调用来加载和刷新其内容. 这些页面很难被抓取,因为JSON文件的触发器不容易被追踪. 所以需要手动测试和检查来确定合适的参数. 解决方案是制作具有适当参数的所需JSON网址.

总之,动态网页是非常复杂的刮,所以他们需要高水平的专业知识,经验和先进的基础设施. 但是,一些网络诈骗公司可以处理它,所以你可能需要聘请一个第三方数据抓取公司.

December 22, 2017