【笔记】2、初学python3网络爬虫——爬虫的基本原理
2017-10-01 18:39
429 查看
python3网络爬虫——爬虫的基本原理
这是我的第二篇python3网络爬虫学习笔记学习指引:视频教程《python3网络爬虫实战》
为了避免学习后短时间内遗忘,让自己随时可以查阅前方自己学过的知识,特意注册csdn博客,方便自己学习时做笔记,也方便随时回顾。也希望自己的学习过程能给同样初学python爬虫的你带来一点指引!由于自己是新手,只有一点点的python基础,所以笔记中难免会有很多纰漏,还望各路大神多多包涵,多多指教,如有不正确的地方,欢迎指出。
什么是爬虫?
爬虫是请求网站并提取数据的自动化程序。互联网可以类比成一张大网,爬虫是在网上行走的一条虫子,爬到我们想去的地方,获取我们需要的信息。爬虫一般分为以下四个步骤
1、发起请求(Request)相当于是python向服务端发送请求,等待服务器的响应。其请求可以包涵额外的headers等信息。
2、获取响应内容(Response)
你发送了请求之后,服务端会给你一个回应,如果是顺利的话,服务端会给你抛回来一堆消息,这些消息就是你要获取的页面内容。
3、解析内容
返回一堆代码,谁都不能一下子看懂对不对?那么我们对获取的内容要进行解析,解析的方法有很多,可以将内容转换成我们方便处理的不同对象,转换后,我们就可以通过这些通俗易懂的对象进行下一步操作了。
4、保存数据
解析完了很多情况下你可能不想马上扔掉,那这个时候就要将数据保存下来,总有再用上的时候。
Request
一般发起请求(Request)时,都会在发送的时候包含一些信息,毕竟你去别人家拿东西的时候,你需要展示身份,表明来意的嘛!那么这个Request中我们会包含哪些信息呢?主要包含四条吧:1、请求方式
一般是 get post (以上是两种主要方式) head put delete options 等等
2、请求url
相当于是网址
3、请求头
会携带一些头部信息,也相当于你去别人家是,你会告诉对方你是谁(User-Agent),你以一个什么身份来等等信息(Host、Cookies),这样子别人才会让你进门对吧?
4、请求体
请求时额外携带的一些数据,可以理解成你去别人家,你除了告诉别人你的身份和你的目的外,你还要送礼,别人才会给你想要的东西。(如表单提交时的表单数据)
Response
1、响应状态比如返回代码为200则代表成功、301代表跳转、404代表找不到页面、502代表服务器错误
2、响应头
如内容类型、内容长度、服务器信息、设置cookie等等
3、响应体
包含了请求资源的内容,如图片、页面等等
对上面的内容测试一下:
解析的方式
直接处理Json解析
正则表达式
BeautifulSoup
PyQuery
XPath
等等
一些问题
为什么抓到的东西跟浏览器看到的不一样?
比如我们抓取微博某一页的内容,我们会发现抓下来的内容非常有限,很多微博的信息都是通过js调用后台接口获取的内容,在html加载完成之后才有。这种情况我们自然抓取不到。不过,这不会影响我们爬虫,有问题找方法,解决JavaScript渲染的问题,有不少方法,我们列举一下:分析Ajax请求
Selenium/WebDriver模拟一个浏览器来加载一个网页
Splash
PyV8、Ghost.py
测试一下第二个方法:
再输入
print(driver.page_source)就可以看到最终页面的代码,这个代码是js渲染完毕后的代码。
怎样保存数据
文本:纯文本、Json、Xml等关系型数据库:MySQL、Oracle、SQL Server等具有结构化表结构形式存储
非关系型数据库:MongoDB、Redis等Key-Value形式存储
二进制文件:如图片、视频、音频等等直接保存成特定格式
以上便是我第二课学习到的内容。
之前的学习笔记:
1、初学python3网络爬虫——环境配置http://blog.csdn.net/u011419402/article/details/78142903
相关文章推荐
- 【笔记】3、初学python3网络爬虫——urllib库的使用
- 用 Python 编写网络爬虫 笔记
- python网络爬虫实战笔记(一)
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
- [Python]网络爬虫1:抓取网页的含义和URL基本构成 笔记
- 用 Python 编写网络爬虫 笔记
- Python 初学笔记:Socket网络编程
- 用python 写网络爬虫 学习笔记
- python-网络爬虫初学三:网络异常的捕获
- python-网络爬虫初学四:cookie的存储与读取
- Python--网络爬虫学习笔记
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 【python学习笔记】网络爬虫的完整源代码
- 用 Python 编写网络爬虫 笔记
- python网络爬虫笔记之信息提取
- Python之网络爬虫学习笔记
- 读书笔记--用Python写网络爬虫01--网络爬虫简介
- Python学习笔记之网络爬虫
- [Python]网络爬虫学习笔记,爬取豆瓣妹子上妹子的照片
- python-网络爬虫初学二:headers的设置和一些高级特性