网络爬虫的通俗理解
顾名思义,网络爬虫就是你把很多的爬虫放到网络上面去,抓取数据带回来,然后整合在一起,存储起来
网络爬虫的基本步骤
以Python语言为例:
- 找到需要爬取内容的网页
- 打开该网页的检查页面(即查看HTML代码,按F12快捷键即可进入)
- 在HTML代码中找到你要提取的数据
- 写python代码进行网页请求、解析
- 存储数据
举个例子
目标:爬取知乎上关于“你是如何开始能写Python爬虫?”问题的数据(问题、描述、关注数、浏览量)
其实这里对python的要求也仅限于你需要会数据类型、变量、运算符、函数、模块之类的简单语法。推荐学习网站:Python 入门指南、Python 学习- 廖雪峰的官方网站
1. 爬取 HTML 源码
这里用到的用于网页请求的库是requests,一个非常流行的http请求库。
Requests库会自动解码来自服务器的内容,大多数 unicode 字符集都能被无缝地解码。
这一切requests都能妥妥地搞定。
代码:
1 | python复制代码import requests |
我们会接收到服务器返回的页面,requests解析后,呈现下面这样子:
这就是我们需要的html源码!
接下来要做的就是从html中抽取我们需要的四个信息。
XPath 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。
这里用到另一个有用的库xpath,xpath库可以让你轻松的使用XPath语言查找信息。
既然XPath是在XML文档中才能起作用,然而我们刚刚获取的html只是文本字符串。
接着上面代码:
1 | python复制代码# 将html文档转换为XPath可以解析的 |
这下我们可以使用xpath库来进行信息的提取了。
xpath的使用方法这里不赘述了,大家可以网上搜搜资料,个半小时也能学会。
这里介绍一种简单的方法,你在开发者页面中找到对应信息的源码后,直接右键复制xpath地址:
接上面代码:
1 | python复制代码q_content = s.xpath('//*[@class="QuestionHeader-title"]/text()')[0] # 获取问题内容 |
最终呈现的结果:
完整代码:
1 | python复制代码import requests |
例子内容来自于 通俗的讲,网络爬虫到底是什么? - 朱卫军的回答 - 知乎
参考文章
本文转载自: 掘金