分享好友 最新动态首页 最新动态分类 切换频道
Python爬虫从入门到应用(超全讲解)
2024-12-27 10:39

Python爬虫从入门到应用(超全讲解)

Python应用的领域有很多,对于爬虫这一块,掌握基本的知识之后再去看相对应的爬虫项目,也会很快上手

Python爬虫是一种利用Python编程语言编写的程序,用于从互联网上获取信息

爬虫通常用于网页抓取、数据挖掘、信息监控等领域

以下是Python爬虫的基本知识

  • HTTP协议与请求发送
    ~ HTTP(Hypertext Transfer Protocol)是用于传输超文本的应用层协议,Python爬虫通过发送HTTP请求来获取网页内容
    ~ 使用Python中的库(如requests、urllib等)可以发送HTTP请求并获取响应

  • HTML解析
    爬虫通常需要从网页中提取信息,因此需要解析HTML文档,使用解析库(如Beautiful Soup、lxml等)可以帮助解析HTML,并提取所需的数据

  • 数据存储
    爬虫获取的数据通常需要存储到本地或数据库中供后续处理和分析使用,可以使用文件操作、数据库(如MySQL、MongoDB等)或者其他存储方式来保存数据

  • 反爬机制
    ~ 网站通常会采取反爬虫措施,如设置验证码、限制IP访问频率等,因此爬虫需要应对这些限制。
    ~ 使用代理IP、随机User-Agent、降低请求频率等方法可以规避反爬虫策略

  • Robots协议
    ~ Robots协议是一种网站使用的标准,用于指导网络爬虫访问网站的行为
    ~ 使用robots.txt文件来指示哪些页面可以被爬取,哪些页面应该被忽略

  • 并发与异步
    大规模爬取需要考虑并发与异步处理,以提高爬取效率。使用多线程、多进程或异步库(如asyncio、aiohttp等)可以实现并发与异步操作

  • 定时任务与调度
    爬虫通常需要定时执行,以保持数据的更新。使用定时任务调度工具(如APScheduler、celery等)可以实现定时执行爬虫任务

HTTP请求和响应是Web通信中的基本概念,无论是正常的接口请求还是爬虫请求,它们都使用HTTP协议进行通信

下面是对HTTP请求和响应的详细分析,以及正常接口请求和爬虫请求的区别

HTTP请求(Request)的组成部分HTTP响应(Response)的组成部分1.请求行(Request Line:包括请求方法、请求的URL和HTTP协议版本

2.请求头部(Request Headers:包含了客户端向服务器传递的附加信息,如User-Agent、Accept、Cookie等

3.请求体(Request Body:在POST请求中,包含了要发送给服务器的数据1.状态行(Status Line:包括HTTP协议版本、状态码和状态消息

2.响应头部(Response Headers:包含了服务器向客户端传递的附加信息,如Content-Type、Set-Cookie等

3.响应体(Response Body:包含了服务器返回给客户端的数据

正常的接口请求和爬虫请求的区别

方式正常接口爬虫请求User-Agent接口请求通常会使用标准的浏览器User-Agent爬虫请求可能会使用自定义的User-Agent,以模拟不同类型的浏览器或设备进行访问请求频率接口请求通常遵循人类的操作频率爬虫请求可能会以更高的频率进行访问,从而可能触发网站的反爬虫机制Cookie接口请求可能会携带用户的Cookie信息爬虫请求可能会禁用Cookie或使用自定义的CookieReferer接口请求通常会包含Referer字段,指示请求是从哪个页面跳转而来爬虫请求可能会禁用Referer或使用虚假的Referer请求方式通常会遵循HTTP协议规范,如使用合适的请求方法(GET、POST等)爬虫请求可能会根据需求选择更灵活的请求方式,如使用HEAD请求获取网页头部信息

总的来说,正常的接口请求和爬虫请求在使用HTTP协议上没有本质区别,但在一些请求头部信息和请求行的设置上可能会有所不同,主要是为了达到不同的访问目的和需求

HTTP请求的组成部分

  1. 请求行(Request Line
    包含了HTTP方法、请求的URL和协议版本
    格式

  2. 请求头部(Request Headers
    包含了请求的各种属性和信息,如、等
    每个头部以键值对的形式出现,中间用冒号分隔

 
  1. 请求体(Request Body
    仅在使用POST、PUT等方法时出现,用于传递请求参数或数据
    请求体的格式可以是文本、JSON、XML等

HTTP响应的组成部分

  1. 状态行(Status Line
    包含了响应的状态码和对应的描述
    格式

  2. 响应头部(Response Headers
    包含了服务器对请求的响应信息,如、等
    格式与请求头部相同,每个头部以键值对的形式出现

  3. 响应体(Response Body
    包含了服务器返回的实际数据,可以是HTML、JSON、XML等格式的文本

整体的请求示例

 

整体的相应示例

 
 

在Python中,爬虫常常使用requests库来发送HTTP请求

requests是一个简洁而强大的HTTP库,使得发送HTTP请求变得容易,并能够方便地处理响应数据

以下是对requests库的概念以及一些示例的详细分析

  1. HTTP请求发送:requests库允许通过简单的API发送各种类型的HTTP请求,如GET、POST、PUT、DELETE等

  2. 请求参数设置:可以通过参数设置请求的各种属性,如headers、params、data、cookies等,以满足不同的需求

  3. 响应处理:requests库可以方便地处理HTTP响应,包括状态码、响应头、响应体等

使用之前需要安装

发送GET请求并获取响应

 

截图如下

发送带参数的GET请求

 

发送POST请求并传递数据

 

截图如下

设置请求头部和cookies

 

处理异常

 

截图如下


实战演示

为了爬取豆瓣250的电影

 

结果返回418,这代表加入了反爬

为了让网站显示这是浏览器的请求,需要增加请求头,对应在自身浏览器中刷新并按F12,查看自身请求头

 

最终结果返回200,代表爬取成功

对应 为网页信息,如何解析对应的html文件呢??

此处着重讲一个库

先安装

是Python中一个用于解析HTML和XML文档的库,它能够从网页中提取数据,方便地进行信息抽取和数据挖掘

有一些常用的API能够帮助你查找、遍历和提取所需的信息

常用API具体描述用于初始化Beautiful Soup对象,传入待解析的HTML或XML文档以及解析器类型用于查找符合条件的单个元素或多个元素使用CSS选择器来查找元素获取元素的文本内容查找元素的父元素或所有父元素查找元素的下一个兄弟元素或所有下一个兄弟元素

以下是对一些常用API的详细分析,并附带了相应的小Demo示例

  1. 函数用于查找第一个匹配的元素
 

参数

  • :要查找的标签名或标签名列表
  • :要匹配的属性或属性字典
  • :是否递归查找,默认为True
  • :要匹配的文本内容
  • :其他参数

返回值:找到的第一个匹配的元素,如果没有找到则返回None

  1. 函数用于查找所有匹配的元素
 

参数:与find()类似,但多了一个参数,用于限制返回结果的数量

返回值:匹配的元素列表,如果没有找到则返回空列表

示例Demo

 

截图如下

用于获取元素内部的文本内容

 

参数

  • :文本分隔符,默认为换行符
  • :是否去除文本两端的空白字符,默认为True
  • :指定返回文本的类型,默认为字符串

返回值:元素内部的文本内容

截图如下

用于使用CSS选择器来选择元素

 

参数:CSS选择器字符串
返回值:匹配的元素列表

 

截图如下

使用库爬取豆瓣电影Top250页面的信息

首先发送HTTP请求获取网页内容,然后使用解析HTML内容,查找所有电影条目,并提取其中的电影标题、评分和评论信息,最后打印出提取的电影信息

 

截图如下(此处只打印了25个,毕竟每一页都是25条数据

获取所有电影的电影名


最新文章
筑梦青春志在四方 规划启航职引未来——第二届全国大学生职业规划大赛成长赛道校内选拔总决赛圆满完成
2024筑梦青春志在四方规划启航职引未来为了增强我校学生职业规划意识,指导学生及早做好就业准备,以择业新观念打开就业新天地,促进高质量充分就业。2024年12月12日,我校举办了第二届全国大学生职业生涯规划大赛成长赛道校内选拔总决赛。
蜂鸟风神系统_雷神推出“蜂鸟屏”:为游戏玩家提供卓越视觉享受古代知名地点,今朝更名换姓,居然可以这样
如今的游戏本市场竞争激烈,各大品牌在硬件配置上的差异越来越小,甚至出现了严重的同质化现象为了在众多产品中脱颖而出,许多厂商开始从屏幕质量方面寻求突破一块优质的屏幕不仅能让玩家享受到更加流畅和细腻的视觉效果,还能显著提升整体
腾讯广告投放平台下载安装?腾讯广告投放平台助手
腾讯广告投放平台助手安装步骤及使用介绍摘要:腾讯广告投放平台助手是腾讯推出的一款帮助广告主快捷管理腾讯广告投放的工具。本文将为大家介绍如何下载安装腾讯广告投放平台助手,以及使用方法和注意事项。一、下载安装腾讯广告投放平台助
微信小程序怎么制作自己的程序(微信小程序怎么制作自己的程序店铺)
3.第二,点击顶部导航栏的[小程序开发]按钮,点击[工具]按钮。可以看到,开发工具提供Windows 32位、Windows 64位和 Mca 三个版本。可根据实际情况,选择适合自己电脑的开发工具。4.第三,安装后,就可以直接启动开发者工具。如果是首次启
巴伦周刊发布美国智能投顾平台排行榜
我们已经进入变革阶段近十年Betterment在2010年推出了其自动化投资服务。在几年内,“智能投顾”已经威胁并开始颠覆金融业,就像亚马逊颠覆零售业一样。复杂的算法可以为大众提供个性化的投资组合建议,并且收费是人类投顾的四分之一。在我
逾期会如何影响信用记录和个人信用评分
是一种便捷的分期付款服务旨在帮助使用者解决短期资金需求。倘若使用者未能按期还款即发生逾期情况这不仅会增加额外的成本更会对个人信用记录产生负面作用。逾期记录一旦进入个人信用报告将成为未来信贷活动中的一大障碍。信用评分是金融机
线上SEO揭秘,揭秘神秘面纱,导航网站优化高效之路
线上SEO并非神秘,实则是一门科学。本文深入解析SEO原理,揭秘优化技巧,助您掌握网站优化之道,提升网站排名,实现网络营销目标。随着互联网的快速发展,(搜索引擎优化)已经成为企业、个人网站提高网站排名、提升品牌知名度的必备手段,
韩漫免费阅读全集漫画——一款提供海量韩漫资源的阅读 APP
在这个数字化的时代,漫画作为一种受欢迎的文化形式,已经走进了人们的生活。对于喜欢看漫画的人来说,能够免费阅读全集漫画无疑是一件令人兴奋的事情。今天,我要向大家介绍一款名为“韩漫免费阅读全集漫画”的阅读 APP,它为用户提供了海
一键生成喊麦歌词助手:满足各种在线喊麦创作需求
1. 喊麦台词生成器是一款利用人工智能技术为使用者提供定制化喊麦台词的智能工具。 2. 它可依据使用者输入的主题、风格、情感等因素,自动生成富有创意和感染力的喊麦台词。3. 以下是喊麦台词生成器的几个特点: - 个性化定制:依据客户需
百度关键词搜索排名时的原则是什么?
在站长圈经常谈论的话题中,如何提高百度排名肯定是TOP3的问题。百度排名的原理是什么,如何改进?今天,曲曲小姐邀请了社区主持人飞影来分享他的理解。关于这类事情。对于百度搜索,没有排名这种东西。搜索引擎认为排名是网站内容在特定关
相关文章
推荐文章
发表评论
0评