Python爬虫:爬虫基本原理

简介: Python爬虫:爬虫基本原理

爬虫:


请求网站 并 提取数据 的 自动化程序

爬虫基本流程:


发起请求 -> 获取响应 -> 解析内容 -> 保存数据

Request

请求方式 Request Method:get post
请求url Request URL
请求头 Request Headers
请求体 Form Data

Response


响应状态 Status code 200ok 301跳转 404找不到页面 502服务器错误
响应头 Response Headers 设置cookies
响应体 Response Body

抓取的数据格式


网页文本 html json
二进制文件 图片 视频

代码示例:

>>> import requests
# 下载网页文件
>>> response = requests.get("http://www.baidu.com")
>>> response.status_code
200
>>> len(response.text)
22240
>>> response.headers
{'Content-Type': 'text/html', 'Content-Encoding': 'gzip', 'Expires': 'Thu, 10 Dec 2026 23:21:37 GMT', 'Cache-Control': 'max-age=7776000', 'Content-Length': '8436', 'Connection': 'close'}
# 增加请求头
>>> headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}
>>> response = requests.get("http://www.baidu.com", headers=headers)
>>> response.status_code
200
# 下载图片,二进制文件
>>> response = requests.get("https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png", headers=headers)
>>> response.status_code
200
>>> with open("baidu.jpg", "wb") as f:
...     f.write(response.content)
...     f.close()
... 
6958

解析方式

直接处理
json解析
正则表达式
BeautifulSoup
XPath
pyquery

解决JavaScript渲染

分析Ajax
selenium库
Splash
PyV8 Ghost.py

保存数据

纯文本 txt, json, xml
关系型数据库 mysql sqlite  oracle sqlserver
非关系型数据库 MongoDB Redis
二进制存储 图片 声音 视频

相关文章
|
7天前
|
数据采集 存储 JSON
Python网络爬虫教程概览
【6月更文挑战第21天】Python网络爬虫教程概览:安装requests和BeautifulSoup库抓取网页;使用HTTP GET请求获取HTML,解析标题;利用CSS选择器提取数据;处理异步内容可选Selenium;遵循爬虫策略,处理异常,尊重法律与网站规定。
16 1
|
1天前
|
监控 安全 虚拟化
深入浅出Python沙箱越狱:原理、方法与防范
今天我们来聊一个有趣的话题 - Python沙箱越狱。在我们开始之前,先来搞清楚什么是Python沙箱吧。 简单来,Python沙箱就像是一个虚拟的"游乐场"。在这个游乐场里,你可以尽情地玩耍(运行Python代码),但是不能伤害到外面的世界(不能访问系统资源或执行危险操作)。这个"游乐场"有围栏(限制),有规则(安全策略),目的就是让你玩得开心,又不会搞出什么大乱子。
|
2天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python进行网络爬虫和数据抓取
在当今数字化时代,数据是无处不在的。从市场趋势到个人偏好,从社交媒体活动到商业智能,数据扮演着关键的角色。然而,访问、处理和利用数据并不总是轻而易举的。幸运的是,Python提供了一套强大而灵活的工具,使得网络爬虫和数据抓取成为可能。本文将深入探讨如何利用Python进行网络爬虫和数据抓取,为您打开数据世界的大门。
|
4天前
|
数据采集 前端开发 JavaScript
python语言通过简单爬虫实例了解文本解析与读写
python|通过一个简单爬虫实例简单了解文本解析与读写
|
19小时前
|
数据采集 XML 缓存
心得经验总结:爬虫(爬虫原理与数据抓取)
心得经验总结:爬虫(爬虫原理与数据抓取)
|
21小时前
|
数据采集 JavaScript 数据安全/隐私保护
经验大分享:python爬虫
经验大分享:python爬虫
|
21小时前
|
数据采集 JavaScript 数据安全/隐私保护
经验大分享:python爬虫
经验大分享:python爬虫
|
23小时前
|
数据采集 Web App开发 前端开发
Python有哪些好用的爬虫框架
在Python中,Scrapy是一个强大的网络爬虫框架,专为数据采集设计,具有高度可定制的爬取流程、内置的数据提取工具、自动请求调度、分布式爬取支持和中间件扩展。它允许开发者轻松构建和管理爬虫,高效抓取和处理网页数据。 Beautiful Soup和Requests库组合则提供了简单的HTML解析和请求功能。Requests库用于发送HTTP请求,而Beautiful Soup则用于解析HTML内容,两者结合便于数据提取。Requests-HTML库进一步简化了这一过程,集成了Requests的功能并内置HTML解析,支持CSS选择器和XPATH。
|
1天前
|
数据采集 存储 Web App开发
python爬虫编写实例分享
python爬虫编写实例分享
|
1天前
|
数据采集 搜索推荐 JavaScript
GitHub星标3500的Python爬虫实战入门教程,限时开源!
爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。 如果形象地理解,爬虫就如同一只机器蜘蛛,它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。