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形式存储。
  • ⼆进制⽂件。如图⽚、视频、⾳频等等直接保存成特定格式即可。

创作不易,大佬请留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

爬虫笔记:爬虫的基本原理相关推荐

  1. python3网络爬虫笔记-爬虫基础原理

    本笔记是学习崔庆才老师的网络爬虫课程的总结 一.HTTP基础原理 1. URI.URL.URN URI: Uniform Resource Identifier,即统一资源标志符 URL:Univer ...

  2. Python爬虫笔记——爬虫基础第一课

    爬虫的四个步骤 0.获取数据--爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据. 1.解析数据--爬虫程序会把服务器返回的数据解析成我们能读懂的格式. 2.提取数据--爬虫程序再从中提取 ...

  3. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  4. Python 网络爬虫笔记10 -- Scrapy 使用入门

    Python 网络爬虫笔记10 – Scrapy 使用入门 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接: ...

  5. Python 网络爬虫笔记9 -- Scrapy爬虫框架

    Python 网络爬虫笔记9 – Scrapy爬虫框架 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  6. Python 网络爬虫笔记8 -- 股票数据定向爬虫

    Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...

  7. Python 网络爬虫笔记6 -- 正则表达式

    Python 网络爬虫笔记6 – 正则表达式 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Python网 ...

  8. Python 网络爬虫笔记5 -- Beautiful Soup库实战

    Python 网络爬虫笔记5 – Beautiful Soup库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. ...

  9. Python 网络爬虫笔记4 -- 信息标记与提取

    Python 网络爬虫笔记4 – 信息标记与提取 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pytho ...

  10. Python 网络爬虫笔记3 -- Beautiful Soup库

    Python 网络爬虫笔记3 – Beautiful Soup库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程 ...

最新文章

  1. pkg mysql 在macOS 上的管理
  2. 快速修剪技巧_三角梅花后修剪有讲究,轻剪还是重剪?品种和养殖环境来决定...
  3. qgc地面站如何导入离线地图_QGC地面站工具下载 QGroundControl(QGC地面站软件) v2018.11.02 免费安装版 下载-脚本之家...
  4. C语言SIX/NINE问题
  5. 分布式ID生成器(来源:架构师之路,2017-06-25 58沈剑 架构师之路)
  6. WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
  7. 黑马程序员--ADO.Net中的知识点和难点
  8. 370万开发者,14万家企业!飞桨中国行落地深圳 激发AI软硬件创新发展新动能...
  9. [ARM-Linux开发] 主设备号--驱动模块与设备节点联系的纽带
  10. mysql 表 字符集_如何查看MySQL数据库/表/列的字符集?
  11. py加PHP,浅谈PHP运行Python脚本的方法
  12. [长文科普]浅谈数据湖的应用与安全
  13. 高质量图片缩略图生成(编程笔记)
  14. maven添加ojdbc6
  15. Failed installing ‘Tomcat8‘ service?
  16. ApkAnalyser-APP开发框架分析器,查看APP是用Flutter还是ReactNative或是Weex
  17. 虚拟主机需要备案吗?
  18. 浅谈视频会议系统的带宽控制!
  19. Unity EmbeddedBrowser浏览器插件事件通讯
  20. Julia 数据科学应用

热门文章

  1. ajax请求后台报没有body_前端常见面试 - 请求篇
  2. 在bcb中添加activex控件_LinkedCell 属性介绍,OLEObjects 控件
  3. thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)
  4. Elasticsearch系列「」学习路线
  5. 人类史上最大最好的希望事件
  6. hive sql循环_hive存储过程
  7. JavaWeb-综合案例(用户信息)-学习笔记06【复杂条件查询功能】
  8. MySQL数据库-笔记05【查询练习题*25道(附解析)】
  9. Android Flow遇见Retrofit网络请求实践
  10. CentOS 初体验十五:阿里云安装Nginx