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

【进阶系列】python简单爬虫实例

python有一个很强大的功能就是爬取网页的信息,这里是CNBlogs 网站,我们将以此网站为实例,爬取指定个页面的大标题内容。代码如下:

首先是导入库:

# 导入所需的库
import requests  # 用于发送HTTP请求
from bs4 import BeautifulSoup  # 用于解析HTML文档

这一部分是爬取1-50页的列表推导式: 


# 生成一个包含要爬取页面URL的列表
# 这里使用了列表推导式,生成了从第1页到第50页的URL(注意:实际可能是分页的URL结构不同,需要调整)
urls = [f'https://www.cnblogs.com/#p{i}' for i in range(1, 51)]

函数部分:分别是爬取页面和爬取页面内容的函数


# 定义爬取页面的函数
def craw(url):# 使用requests.get()方法发送GET请求response = requests.get(url)# 检查HTTP响应状态码是否为200(成功)if response.status_code == 200:# 如果请求成功,返回页面内容(文本形式)return response.textelse:# 如果请求失败,打印错误信息并返回Noneprint(f"Failed to retrieve {url}")return None# 定义解析页面内容的函数
def parse(html):# 使用BeautifulSoup解析HTML内容,指定解析器为'html.parser'soup = BeautifulSoup(html, 'html.parser')# 查找所有具有'post-item-title'类的<a>标签(这里假设这是文章标题的链接)# 注意:这里的类名可能需要根据实际页面结构调整links = soup.find_all('a', class_='post-item-title')# 使用列表推导式提取每个链接的href属性和文本内容(去除多余空白)return [(link['href'], link.get_text(strip=True)) for link in links]

主函数部分:

# 主程序入口
if __name__ == '__main__':# 这里应该遍历urls列表中的每个URL,但为了示例,这里只取了第一个URL(即urls)# 实际上,您可能想要使用一个循环来处理所有URL# 注意:下面的代码示例中有个错误,应该使用urls(或其他索引)而不是urls本身# 正确的做法是:for url in urls: ...html_content = craw(urls)  # 修改为遍历或选择特定URL# 检查html_content是否为None(即请求是否成功)if html_content:# 如果请求成功,解析页面内容并打印结果for result in parse(html_content):print(result)  # 打印每个文章的链接和标题

结果如下:(爬取第二页数据)


未完待续(持续更新中🏆) 

http://www.lryc.cn/news/487164.html

相关文章:

  • ️虚拟机配置NAT和Bridge模式
  • 解决Spring Boot整合Redis时的连接问题
  • 109. UE5 GAS RPG 实现检查点的存档功能
  • springboot005基于springboot学生心理咨询评估系统得设计与实现。
  • ESC算法/逃生:一种基于人群疏散行为的优化方法
  • 构建安全的数据库环境:群晖NAS安装MySQL和phpMyAdmin详细步骤
  • 【人工智能】深入理解图神经网络(GNN):用Python实现社交网络节点分类与分子结构分析
  • Qt 日志文件的滚动写入
  • 【c语言】数据包捕获和分析工具
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——14.哈希(2)(模拟实现)
  • 请描述一下JVM(Java虚拟机)的生命周期及其对应用程序性能的影响
  • 展会邀约|加速科技与您相约IC China 2024!
  • 鸿蒙中服务卡片数据的获取和渲染
  • 运维篇-修复centos7无法下载docker问题
  • 【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model
  • redis类型介绍
  • kubernetes如何配置默认存储
  • 【微服务】Spring AI 使用详解
  • DataGrip 连接 dm
  • 数据库监控工具DBdoctor v3.2.4.3版本发布,新增对openGauss、Vastbase G100的支持!
  • Git 常用命令大全与详解
  • 执行flink sql连接clickhouse库
  • 什么是C++中的友元函数和友元类?
  • 基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
  • Inpaint-Web:纯浏览器端实现的开源图像处理工具
  • 商业物联网详细指南:优势与挑战
  • 如何在项目中用elementui实现分页器功能
  • Nginx参数配置-笔记
  • 衡量神经网络表征相似度
  • Javascript高级:深度解析与多种实现方式数组扁平化