爬虫 | 网易新闻热点数据的获取与保存

Hi,大家好,我是半亩花海。本项目是一个简单的网络爬虫,用于从网易新闻的热点新闻列表中提取标题和对应的链接,并将提取到的数据保存到一个 CSV 文件中。


目录

一、技术栈

二、功能说明

三、注意事项

四、代码解析

1. 导入所需库

2. 定义目标URL和请求头

3. 发送HTTP请求获取网页内容

4. 解析网页内容

5. 提取标题和链接

6. 将提取的数据写入 CSV 文件

五、结果展示

六、完整代码


一、技术栈

  • Python
  • Requests 库:用于发送 HTTP 请求
  • lxml 库:用于解析 HTML 文档
  • CSV 文件操作

二、功能说明

  • 通过发送 HTTP 请求到网易新闻的热点新闻列表页面,获取页面内容。
  • 使用 XPath 解析页面内容,提取新闻标题和对应链接。
  • 将提取的标题和链接写入 CSV 文件,每一行包含一个标题和其对应的链接。

三、注意事项

  • 网络爬虫应遵守网站的 Robots 协议和法律法规,不得对网站造成不必要的负担或侵犯其权益。
  • 在进行大规模爬取时,建议添加适当的延时和错误处理机制,以避免被网站封禁 IP 或其他异常情况。

四、代码解析

1. 导入所需库

import requests
from lxml import etree

2. 定义目标URL和请求头

url = 'https://c.m.163.com/news/hot/newsList'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 ''Safari/537.36 '
}

3. 发送HTTP请求获取网页内容

response = requests.get(url, headers=headers)

4. 解析网页内容

data = etree.HTML(response.text)

5. 提取标题和链接

title_list = data.xpath('//div[@class="title"]/a/text()')
href_list = data.xpath('//div[@class="title"]/a/@href')

6. 将提取的数据写入 CSV 文件

with open('网易.csv', 'a+', encoding='utf-8') as f:for title, href in zip(title_list, href_list):print("Title:", title)  # 标题print("Href:", href)  # 超链接f.write("{},{}\n".format(title, href))

五、结果展示


六、完整代码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import requests
from lxml import etreeurl = 'https://c.m.163.com/news/hot/newsList'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 ''Safari/537.36 '
}
response = requests.get(url, headers=headers)data = etree.HTML(response.text)
title_list = data.xpath('//div[@class="title"]/a/text()')
href_list = data.xpath('//div[@class="title"]/a/@href')# 保存数据,指定编码为UTF-8
with open('网易.csv', 'a+', encoding='utf-8') as f:for title, href in zip(title_list, href_list):print("Title:", title)  # 标题print("Href:", href)  # 超链接f.write("{},{}\n".format(title, href))

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

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

相关文章

Playwright安装和基本使用(ui/web自动化)

1.简介 Playwright是2021年微软开源的一个项目「playwright-python」。针对 Python 语言的纯自动化工具,它可以通过单个API自动执行 Chromium,Firefox 和 WebKit 浏览器,同时支持以无头模式、有头模式运行。 Playwright(Git&…

springboot汽车企业公司网站的系统设计ssm-java

框架:SSM/springboot都有 jdk版本:1.8 及以上 ide工具:IDEA 或者eclipse 数据库: mysql 编程语言: java 前端:layuibootstrapjsp 详细技术:HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: 一…

【学习】软件测试人员使用Loadrunner进行性能测试的优势

在软件测试领域,性能测试是一项至关重要的环节,它关乎到软件系统的稳定性和用户体验。而在这其中,Loadrunner作为一款久经考验的性能测试工具,凭借其独特的优势,成为了众多企业和开发者眼中的“得力助手”。 首先&…

1036: 寻找整数序列的主元素

解法&#xff1a; #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() {int n;cin >> n;vector<int> arr(n);vector<int> tong(1000);for (auto& x : arr) {cin >> x;tong[x];}int pma…

Guava里一些比较常用的工具

随着java版本的更新提供了越来越多的语法和工具来简化日常开发&#xff0c;但是我们一般用的比较早的版本所以体验不到。这时就用到了guava这个包。guava提供了很多方便的工具方法&#xff0c;solar框架就依赖了guava的16.0.1版本&#xff0c;这里稍微介绍下。 一、集合工具类…

vue3 uniapp微信登录

根据最新的微信小程序官方的规定&#xff0c;uniapp中的uni.getUserInfo方法不再返回用户头像和昵称、以及手机号 首先&#xff0c;需获取appID&#xff0c;appSecret&#xff0c;如下图 先调用uni.getUserInfo方法获取code&#xff0c;然后调用后台的api&#xff0c;传入code&…

大模型项目整体规划、技术选型和案例分析经验分享

1 项目整体规划 1.1 明确场景 toB or toC&#xff08;面向企业还是面向消费者&#xff09; toB&#xff08;面向企业&#xff09;&#xff1a;指的是产品或服务主要面向其他企业或组织。这类产品通常需要解决特定的商业问题&#xff0c;强调效率和集成性&#xff0c;并且可能需…

什么是 MVVM、mvc 模型

mvc模型 MVC: MVC 即 model-view-controller&#xff08;模型-视图-控制器)是项目的一种分层架构思想&#xff0c;它把复杂的业务逻辑&#xff0c; 抽离为职能单一的小模块&#xff0c;每个模块看似相互独立&#xff0c;其实又各自有相互依赖关系。它的好处是&#xff1a;保证了…

如何选择最好的数据恢复软件?最佳免费数据恢复软件集

丢失或删除文件并不意味着它已从您的设备中永久删除。 下次您不小心删除或丢失文件时&#xff0c;请不要惊慌&#xff0c;丢失的文件仍然可以恢复&#xff0c;但前提是您迅速采取行动。 驱动器具有用于存储文件的目录。删除数据需要很长时间&#xff0c;因此您删除的任何文件都…

BetterZip解锁文件处理新境界

在数字化时代的浪潮中&#xff0c;文件处理成为了我们日常生活和工作中不可或缺的一部分。压缩软件&#xff0c;作为文件处理的得力助手&#xff0c;以其出色的压缩性能、便捷的操作体验以及强大的文件管理能力&#xff0c;赢得了广大用户的青睐。在众多压缩软件中&#xff0c;…

热词解析| 制造企业如何跟上新质生产力建设步伐【触想智能】

回顾3月份的网络热词&#xff0c;「新质生产力」在各大平台霸榜刷屏&#xff0c;并且受到两会政府工作报告的频繁聚焦。究竟何为新质生产力?以及&#xff0c;传统制造企业如何加速融入这场火热的现代化产业革新浪潮之中? 图源| 纪录片《加快形成新质生产力》 1、什么是新质生…

AutoGen - Build Powerful AI Agents with ChatGPT/GPT-4

原文:AutoGen - Build Powerful AI Agents with ChatGPT/GPT-4 | MLExpert - Crush Your Machine Learning interview In this tutorial, well explore AutoGen1, a Microsoft library that lets you create LLM applications with agents. These agents can communicate and …

PostgreSQL入门到实战-第二十四弹

PostgreSQL入门到实战 PostgreSQL中表连接操作(八)官网地址PostgreSQL概述PostgreSQL中CROSS JOIN命令理论PostgreSQL中CROSS JOIN命令实战更新计划 PostgreSQL中表连接操作(八) 使用PostgreSQL CROSS JOIN从连接的表中生成行的笛卡尔乘积。 官网地址 声明: 由于操作系统, 版…

数据库(3)

目录 11.那你知道什么是覆盖索引和回表吗&#xff1f; 12.什么是MVCC&#xff1f;说说MySQL实现MVCC的原理&#xff1f; 13.MySQL的锁的类型有哪些呢&#xff1f; 14.你们数据量级多大&#xff1f;分库分表是怎么做的&#xff1f; 15.分表后非分库字段sharding_key的查询怎…

C语言学习笔记之结构体(一)

目录 什么是结构体&#xff1f; 结构体的声明 结构体变量的定义和初始化 结构体成员的访问 结构体传参 什么是结构体&#xff1f; 在现实生活中的很多事物无法用单一类型的变量就能描述清楚&#xff0c;如&#xff1a;描述一个学生&#xff0c;需要姓名&#xff0c;年龄&a…

复旦新出!大规模语言模型:从理论到实践,书籍PDF分享

自2018年以来&#xff0c;包含Google、OpenAI、Meta、百度、华为等公司和研究机构都纷纷发布了包括BERT&#xff0c; GPT等在内多种模型&#xff0c;并在几乎所有自然语言处理任务中都表现出色。 今天给大家推荐一本大模型方面的书籍<大规模语言模型&#xff1a;从理论到实…

jupyter切换不同的内核(虚拟环境)(anaconda 24.1.2)

jupyter切换不同的内核&#xff08;anaconda 24.1.2&#xff09; 主要的两条命令&#xff1a; conda install ipykernel python -m ipykernel install --user --name 环境名称 anaconda的版本号 conda --version实例&#xff1a; 一、首先可以看到已经创…

【Linux】进程学习① (进程的PCB(task_struct)进程的标识符详解进程的创建fork函数)

目录 ​编辑 1.进程的概念 1.1进程的描述与组织&#xff1a;进程的PCB 进程&#xff1a;进程是 内核pcb对象可执行程序/内核数据结构可执行程序进程 1.3 task_struct 2.PCB内部属性 3 查看进程 4.获取进程标识符&#xff1a;getpid函数&#xff08;4-6主要围绕进程的标识符展开…

音频变速python版

音频变速 如何能在不改变音频其他特点的情况下&#xff0c;只改变语速呢&#xff1f; 有几个python的库可以实现该功能&#xff0c;下面一一介绍。 pydub库 首先&#xff0c;确保安装了pydub和ffmpeg。 下面是一个简单的Python脚本&#xff0c;展示如何改变音频的播放速度&a…

韩顺平Java | C25 JDBC和连接池(上)

概述 JDBC概述&#xff1a;JDBC为访问不同数据库提供统一接口&#xff0c;为使用者屏蔽细节问题。Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统&#xff0c;从而完成对数据库的各种操作。 // 模拟代码 //JdbcInterface.java --Java规定的JDBC接口(方法) p…