当前位置: 首页 > news >正文

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)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HydraRPC: RPC in the CXL Era——论文阅读
  • 计算机视觉9 全卷积网络
  • 在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1
  • FPGA-计数器
  • 控制欲过强的Linux小进程
  • 【线性代数】矩阵变换
  • 使用Top进行设备性能分析思路
  • 面试题001:Java的特点和优点,为什么要选择Java?
  • 深入Redis集群部署:从安装配置到测试验证的完整指南
  • MybatisPlus的使用与详细讲解
  • 排序算法与复杂度介绍
  • Linux的shell的date命令
  • Spring Boot 与 Amazon S3:快速上传与下载文件的完整指南
  • 从PyTorch官方的一篇教程说开去(4 - Q-table来源及解决问题实例)
  • LeetCode 125.验证回文串 C++写法
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Android优雅地处理按钮重复点击
  • classpath对获取配置文件的影响
  • HomeBrew常规使用教程
  • JAVA并发编程--1.基础概念
  • JS题目及答案整理
  • Laravel Telescope:优雅的应用调试工具
  • overflow: hidden IE7无效
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 编写符合Python风格的对象
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分类模型——Logistics Regression
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端
  • 前端知识点整理(待续)
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 交换综合实验一
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (¥1011)-(一千零一拾一元整)输出
  • (1)SpringCloud 整合Python
  • (1)svelte 教程:hello world
  • (23)Linux的软硬连接
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (蓝桥杯每日一题)love
  • (六)DockerCompose安装与配置
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)JAVA中的堆栈
  • (转)我也是一只IT小小鸟
  • ***原理与防范
  • . NET自动找可写目录
  • .apk文件,IIS不支持下载解决
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 8.0 发布到 IIS
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置