基础篇-爬虫基本原理

简介: 本文为自己动手,丰衣足食!Python3网络爬虫实战案例的学习笔记,部分图片来源于视频截图。爬虫:请求网站,并提取数据的自动化程序请求网站,并提取数据的自动化程序爬虫基本流程在了解爬虫的定义之后,那么再来看看爬虫是如何工作的吧。

本文为自己动手,丰衣足食!Python3网络爬虫实战案例的学习笔记,部分图片来源于视频截图。

爬虫:请求网站,并提取数据的自动化程序请求网站,并提取数据的自动化程序

爬虫基本流程

在了解爬虫的定义之后,那么再来看看爬虫是如何工作的吧。
第一步:发起请求。一般是通过HTTP库,对目标站点进行请求。等同于自己打开浏览器,输入网址。
第二步: 获取响应内容(response)。如果请求的内容存在于服务器上,那么服务器会返回请求的内容,一般为:HTML,二进制文件(视频,音频),文档,Json字符串等。
第三步:解析内容。对于用户而言,就是寻找自己需要的信息。对于Python爬虫而言,就是利用正则表达式或者其他库提取目标信息。
第四步:保存数据。解析得到的数据可以多种形式,如文本,音频,视频保存在本地。


img_51ad9beadfad011b204f13ca1ba6621f.png
爬虫基本流程

请求与响应

爬虫最主要的任务就是发起请求(Request),然后获取服务器的响应(Response)。


img_91fbabab4ca64127195a9dcb33afe7a8.png
请求与响应

Request所包含的信息
爬虫的第一步就是发起请求,请求包括如下内容:

  • 请求方式: 主要有GET,POST两种类型,另外还有HEAD,PUT,DELETE,OPTIONS等。
    GET特点:请求的参数全部包含在请求的网址内。
    POST特点: 需要构造Form Data才能发起请求
  • 请求URL:URL的全名是统一资源定位符。网络上的一切资源都是位于服务器的某一个位置,而URL就是告知浏览器去哪里获取这些资源。
  • 请求头:请求头(header)就是告诉服务器你是谁,包括User-gaget,Host,Cookies等信息。添加请求头信息,保证请求合法
  • 请求体:请求时包含的额外数据,如POST请求需要输入的表单数据,一般用于模拟登陆。


    img_b9d834127631f48eeb1dacbd0bd392a6.png
    什么是请求
img_c396b241fa939d27fb87623e64dccc78.png
console中的request

Response所包含的信息
向服务器发出请求后,不出意外,服务器就会返回一个响应(response)。包括如下内容:

  • 响应状态:用于表示请求的结果,如200代表成功,404找不到页面,502服务器错误等。
  • 响应头 :如内容类型,内容长度,服务器信息,设置Cookie等等
  • 响应体就是网页源代码,也就是用于解析数据的部分。
    访问网页遇到的第一个文件一般都是document形式,都是网页源代码。然后解析内部的超链接,继续发起请求。
img_72b0cea426966261a8072dccd8208b29.png
响应内容
img_ce1a5caaa503063078297ab60977af19.png
console中的response

代码部分:

# 导入请求库
import requests
# 请求网页
response = requests.get('http://www.baidu.com')
# 查看响应体内容
print(response.text)
print(response.content)
print(response.headers)
print(response.status_code)

能够抓取的数据:

只要是网页上可以看到的内容,不出意外都是可以抓取的。但是能不能抓得到很大程度上取决于你的爬虫水平。

  • 网页文本: 如HTML文档,Json格式文本等
  • 图片: 获取的都是二进制文件,如果保存为图片格式
  • 视频: 也是也二进制文件,保存为视频格式
  • 其他 : 只要你能请求到,就能获取到
img_b98980468691602798dd26b33c9fb995.png
数据类型

如何解析网页:

img_799c8c6cc2c16193b2aff316f86cce4d.png
网页解析的方法

解析网页会遇到的问题

抓到的数据和浏览器看到的不一样
element看到的网页的源代码已经经过修饰,数据来自后台端口
浏览器运行JS,后台请求加载,

如何解决JavaScript渲染问题

  • 分析Ajax请求
  • selenium/webdriver
  • Splash
  • PyV8、Ghost.py
img_04e6e2aa998961b23837264100cb19ea.png
数据保存方法
目录
相关文章
|
数据采集 存储 数据库
简单描述一下爬虫的工作原理。
```markdown 爬虫工作原理:发送HTTP请求至目标网站,接收响应并解析网页内容,提取所需信息,存储数据。此过程循环进行,处理限制与复杂情况,遵循法规。📚🤖 ```
262 8
|
数据采集 NoSQL Redis
Python爬虫-代理池原理和搭建
代理池架构,代理池的实现
550 0
|
数据采集 监控 数据库
爬虫技术详解:从原理到实践
本文详细介绍了爬虫技术,从基本概念到实际操作,涵盖爬虫定义、工作流程及Python实现方法。通过使用`requests`和`BeautifulSoup`库,演示了如何发送请求、解析响应、提取和保存数据,适合初学者学习。强调了遵守法律法规的重要性。
4431 4
|
7月前
|
数据采集 监控 网络协议
基于aiohttp的高并发爬虫实战:从原理到代码的完整指南
在数据驱动时代,传统同步爬虫效率低下,而基于Python的aiohttp库可构建高并发异步爬虫。本文通过实战案例解析aiohttp的核心组件与优化策略,包括信号量控制、连接池复用、异常处理等,并探讨代理集成、分布式架构及反爬应对方案,助你打造高性能、稳定可靠的网络爬虫系统。
544 0
|
8月前
|
数据采集 网络协议 前端开发
Python多线程爬虫模板:从原理到实战的完整指南
多线程爬虫通过并发请求大幅提升数据采集效率,适用于大规模网页抓取。本文详解其原理与实现,涵盖任务队列、线程池、会话保持、异常处理、反爬对抗等核心技术,并提供可扩展的Python模板代码,助力高效稳定的数据采集实践。
422 0
|
数据采集 存储 JSON
【专栏】网络爬虫与数据抓取的基础知识,包括爬虫的工作原理、关键技术和不同类型
【4月更文挑战第27天】本文介绍了网络爬虫与数据抓取的基础知识,包括爬虫的工作原理、关键技术和不同类型。通过实例展示了如何构建简单爬虫,强调实战中的环境搭建、目标分析及异常处理。同时,文章探讨了法律、伦理考量,如尊重版权、隐私保护和合法用途,并分享了应对反爬策略。最后,倡导遵守数据抓取道德规范,以负责任的态度使用这项技术,促进数据科学的健康发展。
1676 2
|
数据采集 JavaScript 前端开发
JavaScript逆向爬虫——无限debugger的原理与绕过
JavaScript逆向爬虫——无限debugger的原理与绕过
1444 2
|
数据采集 调度 Python
Python编程异步爬虫——协程的基本原理(一)
Python编程异步爬虫——协程的基本原理(一)
208 0
|
数据采集 Python
Python编程异步爬虫——协程的基本原理(二)
Python编程异步爬虫——协程的基本原理(二)
148 0
|
数据采集 XML 缓存
心得经验总结:爬虫(爬虫原理与数据抓取)
心得经验总结:爬虫(爬虫原理与数据抓取)
427 0