学习爬虫有一小段时间了, 于是决定把自己学爬虫时所学的, 写过的代码以及看过的文档记录下来, 权当小结. 第一次写这些, 如果有错误, 请多指教.
首先我们需要了解什么是爬虫.
根据百度百科上给出的定义,"网络爬虫(又被称为网页蜘蛛, 网络机器人, 在 FOAF 社区中间, 更经常的称为网页追逐者), 是一种按照一定的规则, 自动地抓取万维网信息的程序或者脚本." 简单来说, 爬虫类似手动下载网页信息, 比如小说, 歌曲. 肯定会有疑问, 既然这样, 干嘛还去敲代码, 直接人工处理不好吗? 话是这么说, 但如果下载的不是一篇两篇小说, 一首两首歌曲呢, 需要将整个网站的信息全部爬取下来, 这个时候人工操作显得有些力不从心了.
学习简单的爬虫应该做些什么前期准备, 我们简单梳理一下:
首先我们需要熟悉一门编程语言, 在这里我们以 Python 为例, 我们需要简单的了解其语法, 掌握列表, 字典等数据结构的用法, for 循环, 文件读取存储等操作, 这些将是你写的爬虫在获取信息, 处理信息, 存储信息需要用到的知识. 不做一一介绍, 基础语法可参照菜鸟教程 Python 基础教程 http://www.runoob.com/python/python-tutorial.html
熟悉网页的基础知识, 不需要很精通, 但需要有个了解. 这里只是简单介绍, 想了解更多可查看我附在介绍后的文档链接
URL:(Universal Resource Locator 即统一资源定位符)URL 是对能从 Internet 上得到资源的位置和访问方法的一种简洁的表示. URL 给资源的位置提供一种抽象 的识别方法, 并用这种方法给资源定位, 使得系统得以对资源 (指 Internet 上可以访问的任何对象, 包括文件目录, 文件, 文档, 图像等, 以及其他任何形式的数据) 进行各种操作, 如存储, 更新, 替换和查找其属性. URL 的一般形式为 < URL 的访问形式>://<主机>:<端口>/<路径>左边的 < URL 的访问形式>主要有文件传送协议 (FTP), 超文本传送协议(HTTP) 等方式, 常见形式为 HTTP, 下面将会介绍到.<主机>一项是必须的,<端口>和 <路径> 有时可省略 . 例如: http://baidu.com/
HTTP:(HyperText Transfer Protocol 即超文本传输协议)HTTP 是一个简单的请求 -- 响应协议, 通常运行在 TCP 之上, 它指定了客户端可能发送给服务器的消息, 以及得到的响应. 我们可以简单的了解其发包和收包的概念 (GET/POST) 详情可见菜鸟教程 HTTP 教程 http://www.runoob.com/http/http-tutorial.html
HTML:(HyperText Markup Lanhguage 即超文本标记语言)HTML 是一种制作万维网页面的标准语言, 它消除了计算机信息交流的障碍. HTML 定义了许多用于排版的 "标签", 各种标签嵌入到万维网的页面就构成了 HTML 文档. 我们所要爬取的页面也基本是 HTML 网页. 所以对于 HTML 中的一些标签需要有所了解, 同时也可了解用来控制网页样式布局的 CSS, 方便以后的解析网页. 菜鸟教程 HTML 教程 http://www.runoob.com/html/html-tutorial.html , 菜鸟教程 CSS 教程 http://www.runoob.com/css/css-tutorial.html
掌握抓包分析工具
一种方法是通过谷歌或者火狐浏览器自带的开发者工具, F12 或者鼠标右键检查, 可以快速方便的定位网页元素位置
另一种方法是通过抓包分析工具 Fiddler https://www.telerik.com/download/fiddler , 我也不是很经常用, 一般浏览器 F12+F5 搞定, 关于 Fiddler 的用法可以百度.
正则表达式
用来提取网页信息的表达式, 可能会觉得有些繁琐, 但学会一个通配模式后, 就会觉得正则其实挺好用的. 关于正则的教程, 推荐大家看看这个: 正则表达式 30 分钟入门教程 http://www.jb51.net/tools/zhengze.html , 另外用正则表达式的时候, 如果直接通过代码测试正则表达式的可行性, 费时间且麻烦, 给大家推荐个网站: 正则表达式在线测试 http://tool.oschina.net/regex/?utm_source=com.tencent.tim&utm_medium=social
最后就是一些爬虫所需的 Python 库, 大家可以直接在命令行通过 pip 安装, 用 PyCharm 的可以在 Setting 中安装.
1.requests 用来请求网页的模块, 与之相同作用的还有 urllib, 不过我更习惯 requests requests 中文文档 http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
2.BeautifulSoup 用来解析网页的模块, 在小型爬虫中具有强大作用, 且简单易学. 配合 requests 使用便可轻松爬取并解析网页. BeautifulSoup4.4.0 文档 https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#text
看上去这些内容有点多, 但这通过几个小项目还是很好上手的. 当然, 爬虫可不止这些简单的内容, 真正有难度的便在于针对各种反爬取措施所做的策略了, 而这, 也会在后续通过简单实战的方式向大家介绍, 无论是文档还是视频, 都只是我们了解爬虫知识的前提, 真正使我们掌握的, 只有实战, 通过动手自己编写代码, 相信大家能够很快掌握爬虫的基本使用方法.
好了, 第一次就说这么多了, 希望大家多多指教, 一起学习呀.
来源: http://www.bubuko.com/infodetail-2655653.html