Python爬虫(2) --爬取网页页面

文章目录

  • 爬虫
  • URL
  • 发送请求
    • UA伪装
    • requests
  • 获取想要的数据
    • 打开网页
  • 总结
    • 完整代码

爬虫

Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requests、BeautifulSoup、Scrapy 等)而成为实现爬虫的首选语言之一。

Python爬虫获取浏览器中的信息,实际上是模仿浏览器上网的行为。完成获取信息需要完成三步:

  1. 指定url
  2. 发送请求
  3. 获取你想要的数据

比如我们爬取一个网站的页面:

https://www.sogou.com/

URL

URL(Uniform Resource Locator,统一资源定位符)是互联网上用来标识资源的字符串,它告诉Web浏览器或其他网络程序如何访问特定的文件或网页。简单来说,URL就是网页的地址。

那我们怎么寻找网页的url呢?

浏览器中找到网页页面,点击按钮F12进入开发者控制台(Developer Console)。

在这里插入图片描述

第一步点击Network,第二步刷新页面,第三步滚动滚轮找到最上面的一项打开:

url2.png

我们可以看到:网页的url地址、以及它的请求方式是get请求、Status Code在200和300是属于正常的、类型是text/html形式的。

好,那我们先指定url地址:

url = "https://www.sogou.com/"

发送请求

找到网址之后,我们当然得要获取它,这样我们就需要申请访问它的网址。

访问别人,当然自己得有个身份,怎么为自己伪装一个身份呢?

UA伪装

在python内下载fake_useragent包,这里面是别人以及写好的UA,使用这个包会为我们随机提供一个身份。

pip install fake_useragent

下载好之后导入包:

import fake_useragent

接下来运用这个包来进行UA伪装:

head = {"User-Agent":fake_useragent.UserAgent().random		#"User-Agent"固定写法哦
}

这样我们就有身份来发生请求啦!

requests

在Python中,发生请求使用requests方法。使用这个方阿飞之前呢,我们也还需要安装一个requests包:

pip install requests

下载好之后导入包:

import requests

接下来我们来使用这个包来发送请求:

response = requests.get(url,headers=head)
#以head的伪装身份访问url,将返回的数据放在response对象内

这样我们就请求完成了。

获取想要的数据

之前我们在开发者控制台中看到,网页的类型是text/html形式的。

请求完成之后,我们将请求到的内容接收一下:

res_text = response.text
print(res_text)
--------------------
print(response.status_code)
#可以加上这个代码,验证请求是否成功:
200:请求成功。通常表示服务器成功返回了请求的网页。
404:未找到。通常表示服务器无法找到请求的资源(网页)。
500:内部服务器错误。通常表示服务器遇到了一个意外情况,导致其无法完成对请求的处理。

将接收到的内容打印出来。

打开网页

在PyCharm中,建立一个HTML文本,将接收打印出来的数据内容复制进HTML文本中:

打开网页.png

进入HTML文本,右上角会有浏览器浮现,选择你要使用的浏览器打开,就会进去获取的网页中。

总结

本篇介绍了:如何爬取网页的一个页面。

  1. 指定url
  2. 发送请求:requests请求方法
    1. UA伪装:使用fake_useragent包,为自己提供身份
  3. 获取想要的数据:将数据接收处理

完整代码

import fake_useragent
import requests
if __name__ == '__main__':#UA伪装  让你认为我是一个浏览器head = {"User-Agent":fake_useragent.UserAgent().random}# 1、指定urlurl = "https://www.sogou.com/"# 2、发送请求    返回的数据在response对象内response = requests.get(url,headers=head)#3、获取想要的数据res_text = response.textprint(res_text)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 主从复制、哨兵机制关键参数与命令

建立主从连接 【命令】replicaof <服务器 A 的 IP 地址> <服务器 A 的 Redis 端口号> 形成主服务器节点和从服务器节点的关系&#xff0c;也可以让从节点成为二级主节点分摊压力。 【命令】psync 进行数据同步命令&#xff0c;会携带 runID 和 offset。 从节点…

基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF.仿真输出误差收敛曲线和误差协方差收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022…

laravel框架基础通识-新手

常用目录及其解析 routes 该目录为路由目录 一般根据api uri可以反向查找对应路由及其controller&#xff0c;目录下的文件名一般和url的第一级对应为了规范&#xff0c;然后根据根据里面具体分组和别名对应拼接对应路由url&#xff0c;后面对应的则是controller&#xff0c…

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

HTML5+ push消息推送

HTML5 push消息推送 push消息推送关键 API 介绍plus.pushaddEventListenerclearcreateMessagegetAllMessagegetClientInfosetAutoNotificationremove 实践消息推送开启权限 push消息推送 HTML5 的 Push 消息推送功能是一个强大的特性&#xff0c;它允许开发者在 Web 应用中实现…

助燃新质生产力,魔珐科技亮相IMC2024制造业数字科技大会展示有言AIGC视频工具价值

2024年7月19日&#xff0c;IMC2024第八届制造业数字科技大会在上海盛大开幕&#xff0c;本次大会以《向“智”而行》为主题&#xff0c;250智能制造行业数字化转型企业、行业领军者及实践者共聚一堂&#xff0c;共同助力企业增强技术“硬核力”&#xff0c;为新质生产力蓄势赋能…

Matlab仿真教程

什么是仿真&#xff1f; 仿真是一种使用数学模型和算法来模拟和分析实际系统或过程的技术。仿真可以帮助我们更好地理解系统的行为、优化系统的性能和预测系统的结果。 Matlab仿真 Matlab是一种广泛使用的仿真和分析工具。它提供了丰富的函数库和工具&#xff0c;可以用来解…

buuctf web 第五到八题

[ACTF2020 新生赛]Exec 这里属实有点没想到了&#xff0c;以为要弹shell&#xff0c;结果不用 127.0.0.1;ls /PING 127.0.0.1 (127.0.0.1): 56 data bytes bin dev etc flag home lib media mnt opt proc root run sbin srv sys tmp usr var127.0.0.1;tac /f*[GXYCTF2019]Pin…

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介&#xff1a; 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志&#xff1a; 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片&#xff1a; 会员中心截图&…

多类支持向量机损失(SVM损失)

(SVM) 损失。SVM 损失的设置是&#xff0c;SVM“希望”每个图像的正确类别的得分比错误类别高出一定幅度Δ。 即假设有一个分数集合s[13,−7,11] 如果y0为真实值&#xff0c;超参数为10&#xff0c;则该损失值为 超参数是指在机器学习算法的训练过程中需要设置的参数&#xf…

学习并测试SqlSugar的单库事务功能

SqlSugar支持单库事务、多租户事务、多库事务&#xff0c;本文学习并测试单库事务的基本用法。   使用SqlSugarClient类、ISqlSugarClient接口都可以创建SqlSugarClient数据库操作实例&#xff0c;其区别在于&#xff0c;针对单库而言&#xff0c;SqlSugarClient类支持调用Be…

【python】NumPy运行报错分析:IndexError——数组索引越界问题

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Android init.rc的启动流程

Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…

C++中的atomic:原子

在多线程编程中&#xff0c;原子操作是一种重要的技术&#xff0c;可以确保在并发环境中进行无锁操作。C11 引入了 std::atomic<>&#xff0c;提供了一种无锁的机制来操作变量&#xff0c;确保在并发环境中访问和修改变量时没有数据竞争。本文将介绍 std::atomic<>…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1

本来打算找到工作再整理高级的题库&#xff0c;但一直没什么面试机会。宅在家里也不知道干些什么。索性就把高级的题库整理出来了。也算有头有尾。高级的题库更新之后&#xff0c;专业性更强了&#xff0c;不是真正从事这一行的&#xff0c;很难做出来。本人就是个小菜鸡&#…

【.NET全栈】ASP.NET开发Web应用——用户控件和绘图

文章目录 前言一、用户控件1、创建用户控件2、使用用户控件3、在web.config中注册用户控件4、用户控件中公开属性5、用户控件事件6、动态加载用户控件 二、动态绘图1、基本绘图2、绘制一个自定义的图片3、在Web页面放置自定义图片4、图片格式和质量5、一个Web绘图示例程序 前言…

matlab simulink气隙局部放电仿真技术研究

1、内容简介 略 87-可以交流、咨询、答疑 2、内容说明 略 为了解决目前国内外局部放电仿真方法难以计算气隙局部放电暂态过程的问题 , 利用 MATLAB (SIMULINK ) 的公共模块库和电力系统专业模块库 , 根据单气隙局部放电仿真物理模型 , 构造了气隙局部放 电仿真计算的电…

Python运算

目录 1. 算术运算符 2. 赋值运算符 3. 比较运算符 4. 逻辑运算符 5. 位运算符 6. 成员运算符 7. 身份运算符 1. 算术运算符 运算符描述示例加法a b-减法a - b*乘法a * b/除法a / b//取整除a // b%取余数a % b**幂运算a ** b 示例&#xff1a; a 10 b 3 print(a b…

打造安全堡垒:Xcode应用权限管理全解析

打造安全堡垒&#xff1a;Xcode应用权限管理全解析 在移动应用开发中&#xff0c;权限管理是确保用户数据安全和应用正常运行的关键环节。Xcode&#xff0c;作为iOS和macOS应用开发的集成环境&#xff0c;提供了一套完善的权限管理系统。本文将深入探讨Xcode中应用权限管理的策…