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

挑战30天学完Python:Day22 爬虫

🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没有系统学习的使用者。总之如果你想提升自己的Python技能,欢迎加入《挑战30天学完Python》

  • 📘 Day 22
    • Python爬虫
    • 💻 第22天练习

📘 Day 22

Python爬虫

什么是数据抓取

互联网上充满了大量的数据,可以应用于不同的目的。为了收集这些数据,我们需要知道如何从一个网站抓取这些数据。

网络抓取本质上是从网站中提取和收集数据,并将其存储在本地机器或数据库中的过程。

在本节中,我们将使用 beautifulsoup 和 requests 包来抓取数据。

友情提醒:数据抓取不合法,本篇内容请仅用于测试和学习用。

如果你的Python环境中还没如下两个库,请用pip进行安装。

pip install requests
pip install beautifulsoup4

要从网站抓取数据,需要对HTML标记和CSS选择器有基本的了解。我们使用HTML标签,类或id定位来自网站的内容。

首先导入 requests 和 BeautifulSoup 模块

import requests
from bs4 import BeautifulSoup

接着将需要抓取的网页地址赋值给一个url变量,以下我们以手机新浪首页为例子。


import requests
from bs4 import BeautifulSoup
url = 'http://wap.sina.cn/'# 让我们使用网络请求url,获取返回的数据
response = requests.get(url)
# 检查返回状态,200表示正常
status = response.status_code
print(status)
200

使用 beautifulSoup 解析页面内容。

import requests
import re
from bs4 import BeautifulSoup
url = 'http://wap.sina.cn/'response = requests.get(url)
# 获取请求页面的所有内容
content = response.content
# 加载成beautiful对象
soup = BeautifulSoup(content, 'html.parser')
#解析标题并打印
print(soup.title)
# 获取标题里内容
print("《" + soup.title.get_text() + "》")
# 网站整个页面
# print(soup.body)
# 寻找要闻片段(通过网页右键查看源代码)
yaowen = soup.find(id="yaowen_defense")
# 要闻对象中查找所有<H2>标签,并循环获取概要标题
for h2 in yaowen.find_all('h2'):print(h2.contents[0])

如果运行这段代码,可以看到提取到了所有的新闻标题。

本节只是抛砖隐喻,并不是python基础学习中核心部分。不过多展开,更多参考官方文档 beautifulsoup documentation

🌕 你如此有能力,每一天都在进步,挑战还剩余8天,加油!本篇内容虽少,但练习不能少。

💻 第22天练习

  1. 抓取豆瓣电影排行版中电影前10个电影的基本信息 https://movie.douban.com/chart。
  2. 从Python网络爬虫靶场 http://www.spiderbuf.cn/ 选择任意一个无反扒的网站进行表数据获取。

练习参考:22_exercise.py

🎉 CONGRATULATIONS ! 🎉

<< Day 21 | Day 23 >>

相关文章:

挑战30天学完Python:Day22 爬虫

&#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点知识&#xff0c;但又没…...

AI:138-开发一种能够自动化生成艺术品描述的人工智能系统

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…...

智慧城市建设的新里程碑:公共服务电子支付大屏

随着科技的飞速发展&#xff0c;我们的生活正在经历前所未有的变革。电子支付的出现&#xff0c;无疑是这场变革中的一大亮点&#xff0c;它不仅改变了我们日常的支付方式&#xff0c;更成为智慧城市建设的重要一环&#xff0c;为公众提供了更加便捷、高效的服务体验。 在以前&…...

Netty之Decoder详解与实战

在这篇博客文章中&#xff0c;我们将深入探讨Netty框架中的一个核心组件——Decoder&#xff0c;并通过示例解释其工作原理及如何在Netty应用程序中使用它来处理网络通信中的数据解码。 1. 什么是Decoder&#xff1f; 在Netty中&#xff0c;Decoder是一种特殊类型的ChannelHa…...

PCIe P2P DMA全景解读

温馨提醒&#xff1a;本文主要分为5个部分&#xff0c;总计4842字&#xff0c;需要时间较长&#xff0c;建议先收藏&#xff01; P2P DMA简介 P2P DMA软硬件支持 CXL P2P DMA原理差异 P2P DMA应用场景 P2P DMA技术挑战 一、P2P DMA简介 P2P DMA&#xff08;Peer-to-Peer…...

【Git】window下大小写不敏感问题处理

在Windows环境下&#xff0c;Git因为文件名的大小写敏感性而导致了一些问题。 首先&#xff0c;Windows文件系统是不区分大小写的&#xff0c;这意味着在Windows中创建的两个文件名只有大小写不同&#xff0c;但字母顺序和字符完全相同的文件会被视为相同的文件。然而&#xf…...

【JS】【Vue3】【React】获取滚轮位置的方法:JavaScript、Vue 3和React示例

目录 使用JavaScript原生方法在Vue 3中获取滚轮位置在React中获取滚轮位置 随着Web应用程序的发展&#xff0c;滚轮位置的获取变得越来越重要&#xff0c;可以用于实现页面的滚动效果、导航条的隐藏和显示等功能。本文将探讨在JavaScript、Vue 3和React中获取滚轮位置的不同方法…...

什么是线程和进程?

什么是线程和进程? 文章目录 什么是线程和进程?何为进程?何为线程? Java 线程和操作系统的线程有啥区别&#xff1f;请简要描述线程与进程的关系,区别及优缺点&#xff1f;图解进程和线程的关系程序计数器为什么是私有的?虚拟机栈和本地方法栈为什么是私有的?一句话简单了…...

MaxScale实现mysql8读写分离

MaxScale 实验环境 中间件192.168.150.24MaxScale 22.08.4主服务器192.168.150.21mysql 8.0.30从服务器192.168.150.22mysql 8.0.30从服务器192.168.150.23mysql 8.0.30 读写分离基于主从同步 1.先实现数据库主从同步 基于gtid的主从同步配置 主库配置 # tail -3 /etc/my.…...

【c语言】内存函数

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 memcpy函数的使用和模拟实现 memcpy函数的使用 memcpy函数的模拟实现 memmove的使用和模拟实现 memmove的使用 memmove的模拟实现 memset函数的使用 memcmp函数…...

规则引擎项目

https://github.com/expr-lang/expr https://github.com/gorules/zen...

Docker Image(镜像)

“脚印会旧而梦还在走” Docker 镜像介绍 (1) 如何理解镜像&#xff1f; &#x1f3af; docker image本质就是一个 read-only(只读)文件&#xff0c;这个文件包含了文件系统、源码、库文件、依赖文件、工具等一些运行 application 所必须的文件。 &#x1f3af; 我们也可以…...

qgis启动提示Could not load qgis_app.dll

qgis启动提示Could not load qgis_app.dll 报错信息 我安装了QGIS3.16和3.22和3.28&#xff0c;都无法运行&#xff0c;启动程序报错问题如下图所示 解决方法 在开始菜单运行OSGeo4W 然后进去看看已经下载的qgis有没有更新&#xff0c;如果有更新的话&#xff0c;就直接点…...

数据分析---Python与sql

目录 Python的pandas,如何实现SQL中的leftjoinPython的pandas,如何实现SQL中的unionPython的pandas,如何实现类似SQL中的where进行限制Python的pandas,如和实现SQL中的group byPython的pandas,如何删除某一列Python的pandas,如何实现SQL中的leftjoin 在Python的pandas库中…...

【Oracle】玩转Oracle数据库(六):模式对象管理与安全管理

前言 嘿&#xff0c;数据库大冒险家们&#xff01;准备好迎接数据库管理的新挑战了吗&#xff1f;今天我们要探索的是Oracle数据库中的模式对象管理与安全管理&#xff01;&#x1f6e1;️&#x1f4bb; 在这篇博文【Oracle】玩转Oracle数据库&#xff08;六&#xff09;&#…...

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…...

react脚手架

1.react概述 1.1 什么是react React是一个用于构建用户界面的JS库。 用户界面&#xff1a;HTML页面&#xff08;前端&#xff09; React主要用来写HTML界面&#xff0c;或构建Web应用 如果从MVC的角度来看&#xff0c;React仅仅是视图层&#xff08;V&#xff09;,也就是只负…...

【Vue3】插槽使用和animate使用

插槽使用 插槽slot匿名插槽具名插槽插槽作用域简写 动态插槽transition动画组件自定义过渡class类名如何使用animate动画库组件动画生命周期appear transition- group过渡列表 插槽slot 插槽就是子组件中提供给父组件使用的一个占位符父组件可以在这个占位符智能填充任何模板代…...

HarmonyOS—低代码开发Demo示例

接下来为大家展示一个低代码开发的JS工程的Demo示例&#xff0c;使用低代码开发如下华为手机介绍列表的HarmonyOS应用/服务示例。 1.删除模板页面中的控件后&#xff0c;选中组件栏中的List组件&#xff0c;将其拖至中央画布区域&#xff0c;松开鼠标&#xff0c;实现一个List组…...

Spring体系下解决请求统一加解密之ResponseBodyAdvice和RequestBodyAdvice

在日常写项目中经常一般正规的项目都需要将信息加密后返回前端&#xff0c;前端进行解密后再展示出来给用户&#xff0c;这样做的目的无一不是为了安全&#xff0c;在Java开发中&#xff0c;如何简单快速的完成这个功能呢&#xff0c;这里就需要用到这两个接口ResponseBodyAdvi…...

量子计算中的ZX演算与图态编译优化技术

1. 量子计算中的ZX演算&#xff1a;从数学基础到电路优化ZX演算是一种基于图论的量子电路描述和优化方法&#xff0c;它通过将量子电路表示为特定类型的图&#xff08;ZX图表&#xff09;&#xff0c;并应用一系列图形变换规则来简化电路结构。这种方法的核心优势在于能够发现传…...

LLM 算法岗 | 八股题目 · 代码手撕 · 题目汇总与解析

引言 在现代软件开发中&#xff0c;性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序&#xff0c;性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言&#xff0c;性能优化涉及多个层面&#x…...

如何快速提升网盘下载速度:8大平台完整解决方案

如何快速提升网盘下载速度&#xff1a;8大平台完整解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

40G ZR4光模块:长距互联的优选方案

数字经济飞速发展&#xff0c;5G骨干网建设、跨城数据中心互联、企业广域组网等场景持续扩容&#xff0c;对光传输提出了“高速率、长距离、高性价比”的核心需求。40G ZR4光模块凭借80km超远距传输能力&#xff0c;精准衔接10G与100G传输体系&#xff0c;成为长距互联的高性价…...

VS2015集成Qt项目遭遇MSB4018:平台工具集配置实战解析

1. 当VS2015遇上Qt&#xff1a;MSB4018错误的典型场景 第一次在VS2015里打开Qt项目时&#xff0c;那个鲜红的MSB4018错误提示框跳出来&#xff0c;我整个人都是懵的。控制台里密密麻麻的堆栈信息&#xff0c;最扎眼的就是那句"VCMessage任务意外失败"。这种情况在混合…...

ROFL-Player:英雄联盟回放分析终极指南 - 无需启动客户端的专业工具

ROFL-Player&#xff1a;英雄联盟回放分析终极指南 - 无需启动客户端的专业工具 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你是否曾…...

ECharts高级玩法:用‘数据分段映射’拯救你的业务大盘折线图(附完整代码与避坑点)

ECharts高级玩法&#xff1a;用‘数据分段映射’拯救你的业务大盘折线图&#xff08;附完整代码与避坑点&#xff09; 当你的业务大盘监控图表中同时存在0.5%的转化率和5000%的爆发式增长数据时&#xff0c;传统线性坐标系会让所有细节压缩在底部——这不是数据可视化&#xf…...

别再到处找资源了!一个百度网盘链接搞定IC设计EDA学习环境(附工艺库与避坑指南)

一站式IC设计学习环境&#xff1a;高效搭建EDA工具链的终极方案 在集成电路设计的学习道路上&#xff0c;无数初学者都曾陷入同样的困境——花费大量时间在论坛、网盘和各种资源站点间来回切换&#xff0c;只为拼凑出一个能用的EDA工具环境。当你终于下载完几十GB的安装包&…...

15.【UPF】UPF Power Aware Simulation(UPF功耗感知仿真)

第一步&#xff1a;UPF Power Aware Simulation 分析与知识整理 1. 为什么学习Power-Aware Simulation 传统RTL仿真假设电源稳定&#xff0c;不建模断电行为、断电域X传播、保持单元操作。功耗感知仿真扩展RTL仿真&#xff0c;验证UPF功耗意图正确管理低功耗场景&#xff0c;在…...

百度网盘下载加速终极指南:BaiduPCS-Web与KinhDown免费高速下载方案

百度网盘下载加速终极指南&#xff1a;BaiduPCS-Web与KinhDown免费高速下载方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 你是否还在忍受百度网盘几十KB/s的龟速下载&#xff1f;当你急需下载重要文件时&#xff0c;进…...