php发展

首页 » 常识 » 预防 » 数具数据通灵术之爬虫技巧
TUhjnbcbe - 2021/4/13 13:15:00
有治好白癜风的患者吗 http://pf.39.net/bdfyy/zjdy/191107/7594628.html

俗话说"巧妇难为无米之炊"。如果你是一个数据忍者,却因为没有数据而烦恼,这卷"数据通灵术"或许是你需要的。首先你要看透术名那华丽的外衣,它的真面目是:爬虫技巧。

此卷通灵术包含了爬虫的基础入门术,动态加载破解术,登陆破解术,以及额外赠送的手机APP爬取篇。

作者

杜亚磊

编辑

数小妹

爬虫简介

简单来说,爬虫就是从网上自动下载网页,经过解析处理得到你想到要的数据。这里的步骤和关键词有两个:下载,解析。本文的所有技巧也都是围绕这个两个关键词。

入门篇

大多数的爬虫都是爬取网页上的数据。新手入门,就先搞清楚网页到底是什么。网页的源代码其实就是纯文本,包含了HTML,CSS和JavaScript。

HTML:标记语言,只有语法,没有变量和逻辑,不能称之为编程语言。

CSS:层叠样式表,控制元素的展现形式。

JavaScript:脚本语言,可以动态操作

HTML中元素的增删改。

一般来说,数据是在HTML元素中(否则你看不见它)。详细的HTML介绍可以参考W3School的HTML教程。

下载术

在R语言或Python中下载网页是很简单的。以下的两行代码,使用R的

readLines函数读取了豆瓣电影Top的网页源码:

其他的R包也有类似的函数,如RCurl::getURL和httr::GET。Python中的标配是requests模块。读文档,不细讲。

解析术

下载后的纯文本是类似下边的HTML标签,然而你需要的只是电影名称。

解析术就是将所需数据抽取出来的技巧。接下来介绍三种方法:正则表达式,Xpath和CSS选择器。这些技巧都是通用的,基本不需要考虑编程语言的选择,都会支持的。

正则表达式

正则表达式是通过描述文本规则来达到抽取目的。承接上文的豆瓣电影,使用正则来抽取电影名字:

如果想看看第二行的效果,可以试试下边的代码:

其中.*(.*?).*是一个正则表达式,其匹配规则如下图所示。

这个例子包含了正则中的通配符,贪婪匹配和懒惰匹配,以及分组的概念。看你骨骼惊奇,送你这本正则表达式30分钟入门教程秘籍

1
查看完整版本: 数具数据通灵术之爬虫技巧