爬虫笔记:爬虫的基本原理
1.什么是爬虫
请求⽹站并提取数据的⾃动化程序
2.爬虫基本流程
- 发起请求。通过HTTP库向⽬标站点发起请求,即发送⼀个Request,请求可以包含额外的headers等信息,等待服务器响应。
- 获取响应内容。如果服务器能正常响应,会得到⼀个Response,Response的内容便是所要获取的⻚⾯内容,类型可能有HTML,Json字符串,⼆进制数据(如图⽚视频)等类型。
- 解析内容,得到的内容可能是HTML,可以⽤正则表达式、⽹⻚解析库进⾏解析。可能是Json,可以直接转为Json对象解析,可能是⼆进制数据,可以做保存或者进⼀步的处理。
- 保存数据。保存形式多样,可以存为⽂本,也可以保存⾄数据库,或者保存特定格式的⽂件。
3.什么是Request和Response?
- 浏览器就发送消息给该⽹址所在的服务器,这个过程叫做HTTP Request。
- 服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应处理,然后把消息回传给浏览器。这个过程叫做HTTP Response。
- 浏览器收到服务器的Response信息后,会对信息进⾏相应处理,然后展示。
Request
- 请求⽅式.主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等。
- 请求URL.URL全称统⼀资源定位符,如⼀个⽹⻚⽂档、⼀张图⽚、⼀个视频等都可以⽤URL唯⼀来确定。
- 请求头.包含请求时的头部信息,如User-Agent、Host、Cookies等信息。
- 请求体.请求时额外携带的数据如表单提交时的表单数据.
Response
- 响应状态.有多种响应状态,如200代表成功、301跳转、404找不到⻚⾯、502服务器错误
- 响应头.如内容类型、内容⻓度、服务器信息、设置Cookie等等。
- 响应体.最主要的部分,包含了请求资源的内容,如⽹⻚HTML、图⽚⼆进制数据等。
'
4.能抓怎样的数据?
- ⽹⻚⽂本.如HTML⽂档、Json格式⽂本等。
- 图⽚.获取到的是⼆进制⽂件,保存为图⽚格式。
如定位图中图片网址复制下来
import requests
response = requests.get('https://h.2345cdn.net/i/search20200812/pic-1.png')#响应
print(response.content)#打印二进制格式,图片为二进制#写入文件
with open('D:\\deeplearn\\xuexicaogao\\百度.jpg','wb') as f:f.write(response.content)f.close()
print('结束')
视频。同为⼆进制⽂件,保存为视频格式即可。
其他。只要是能请求到的,都能获取。
5.解析⽅式
我们需要对得到的网页源代码进行解析,解析方式有如下
- 直接处理。构造简单,内容简单可以直接处理
- Json解析。
- 正则表达式
- BeautifulSoup
- XPath
- PyQuery
6.如何保存数据
- ⽂本。纯⽂本、Json、Xml等。
- 关系型数据库。如MySQL、Oracle、SQL Server等具有结构化表结构形式存储。
- ⾮关系型数据库。如MongoDB、Redis等Key-Value形式存储。
- ⼆进制⽂件。如图⽚、视频、⾳频等等直接保存成特定格式即可。
创作不易,大佬请留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)
爬虫笔记:爬虫的基本原理相关推荐
- python3网络爬虫笔记-爬虫基础原理
本笔记是学习崔庆才老师的网络爬虫课程的总结 一.HTTP基础原理 1. URI.URL.URN URI: Uniform Resource Identifier,即统一资源标志符 URL:Univer ...
- Python爬虫笔记——爬虫基础第一课
爬虫的四个步骤 0.获取数据--爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据. 1.解析数据--爬虫程序会把服务器返回的数据解析成我们能读懂的格式. 2.提取数据--爬虫程序再从中提取 ...
- Python 网络爬虫笔记11 -- Scrapy 实战
Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...
- Python 网络爬虫笔记10 -- Scrapy 使用入门
Python 网络爬虫笔记10 – Scrapy 使用入门 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接: ...
- Python 网络爬虫笔记9 -- Scrapy爬虫框架
Python 网络爬虫笔记9 – Scrapy爬虫框架 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...
- Python 网络爬虫笔记8 -- 股票数据定向爬虫
Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...
- Python 网络爬虫笔记6 -- 正则表达式
Python 网络爬虫笔记6 – 正则表达式 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Python网 ...
- Python 网络爬虫笔记5 -- Beautiful Soup库实战
Python 网络爬虫笔记5 – Beautiful Soup库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. ...
- Python 网络爬虫笔记4 -- 信息标记与提取
Python 网络爬虫笔记4 – 信息标记与提取 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pytho ...
- Python 网络爬虫笔记3 -- Beautiful Soup库
Python 网络爬虫笔记3 – Beautiful Soup库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程 ...
最新文章
- pkg mysql 在macOS 上的管理
- 快速修剪技巧_三角梅花后修剪有讲究,轻剪还是重剪?品种和养殖环境来决定...
- qgc地面站如何导入离线地图_QGC地面站工具下载 QGroundControl(QGC地面站软件) v2018.11.02 免费安装版 下载-脚本之家...
- C语言SIX/NINE问题
- 分布式ID生成器(来源:架构师之路,2017-06-25 58沈剑 架构师之路)
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
- 黑马程序员--ADO.Net中的知识点和难点
- 370万开发者,14万家企业!飞桨中国行落地深圳 激发AI软硬件创新发展新动能...
- [ARM-Linux开发] 主设备号--驱动模块与设备节点联系的纽带
- mysql 表 字符集_如何查看MySQL数据库/表/列的字符集?
- py加PHP,浅谈PHP运行Python脚本的方法
- [长文科普]浅谈数据湖的应用与安全
- 高质量图片缩略图生成(编程笔记)
- maven添加ojdbc6
- Failed installing ‘Tomcat8‘ service?
- ApkAnalyser-APP开发框架分析器,查看APP是用Flutter还是ReactNative或是Weex
- 虚拟主机需要备案吗?
- 浅谈视频会议系统的带宽控制!
- Unity EmbeddedBrowser浏览器插件事件通讯
- Julia 数据科学应用
热门文章
- ajax请求后台报没有body_前端常见面试 - 请求篇
- 在bcb中添加activex控件_LinkedCell 属性介绍,OLEObjects 控件
- thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)
- Elasticsearch系列「」学习路线
- 人类史上最大最好的希望事件
- hive sql循环_hive存储过程
- JavaWeb-综合案例(用户信息)-学习笔记06【复杂条件查询功能】
- MySQL数据库-笔记05【查询练习题*25道(附解析)】
- Android Flow遇见Retrofit网络请求实践
- CentOS 初体验十五:阿里云安装Nginx