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

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 etree

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 '
}
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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半亩花海

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值