Python爬虫开发:爬取简单的网页数据

简介: 本文详细介绍了如何使用Python爬取简单的网页数据,以掘金为例,展示了从发送HTTP请求、解析HTML文档到提取和保存数据的完整过程。通过这个示例,你可以掌握基本的网页爬取技巧,为后续的数据分析打下基础。希望本文对你有所帮助。

在数据分析中,数据的获取是第一步。随着互联网的普及,网络爬虫成为获取数据的重要手段。本文将详细介绍如何使用Python爬取简单的网页数据。

一、环境准备

在开始之前,我们需要确保安装了以下Python库:

  • requests:用于发送HTTP请求
  • BeautifulSoup:用于解析HTML文档
  • pandas:用于数据处理


安装命令如下:

pip install requests beautifulsoup4 pandas

二、了解目标网站

在爬取数据之前,我们需要了解目标网站的结构。掘金是一个技术社区,我们可以从首页爬取文章的标题、链接和作者信息。


首先,打开浏览器,进入掘金首页,并查看网页的HTML…

三、发送HTTP请求

使用requests库发送HTTP请求获取网页内容:

import requests
url = 'https://juejin.cn/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
# 打印网页内容
print(response.text)

四、解析HTML文档

使用BeautifulSoup解析HTML文档:

from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# 打印解析后的HTML文档
print(soup.prettify())

五、提取数据

根据HTML结构提取文章的标题、链接和作者信息:

articles = soup.find_all('div', class_='content-box')
for article in articles:
    title = article.find('a', class_='title').text
    link = article.find('a', class_='title')['href']
    author = article.find('a', class_='username').text
    print(f"标题: {title}, 链接: https://juejin.cn{link}, 作者: {author}")

六、保存数据

将提取的数据保存到CSV文件中:

import pandas as pd
data = []
for article in articles:
    title = article.find('a', class_='title').text
    link = article.find('a', class_='title')['href']
    author = article.find('a', class_='username').text
    data.append({
        '标题': title,
        '链接': f"https://juejin.cn{link}",
        '作者': author
    })
df = pd.DataFrame(data)
df.to_csv('juejin_articles.csv', index=False, encoding='utf-8-sig')
print("数据已保存到juejin_articles.csv")

七、综合实例

下面是一个综合的完整示例,展示如何爬取掘金首页的文章信息并保存到CSV文件中:

import requests
from bs4 import BeautifulSoup
import csv
# 用户ID和基础URL
user_id = "换成自己的掘金user_id"
base_url = f"https://juejin.cn/user/{user_id}/posts"
# 发送请求获取用户文章列表页面
response = requests.get(base_url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取文章链接
articles = soup.find_all('a', class_='title')
article_urls = ["https://juejin.cn" + article['href'] for article in articles]
# 创建CSV文件
with open('juejin_articles.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['标题', '链接', '内容'])
    # 遍历每篇文章链接并爬取内容
    for url in article_urls:
        article_response = requests.get(url)
        article_soup = BeautifulSoup(article_response.text, 'html.parser')
        # 提取标题
        title_tag = article_soup.find('h1', class_='article-title')
        title = title_tag.text.strip() if title_tag else '标题未找到'
        # 提取内容
        content_tag = article_soup.find('div', class_='markdown-body')
        content = content_tag.text.strip() if content_tag else '内容未找到'
        # 写入CSV文件
        writer.writerow([title, url, content])
print("数据爬取完成并保存到 juejin_articles.csv")

八、结果输出

运行上述代码后,将会在当前目录下生成一个名为juejin_articles.csv的文件,文件内容如下:

九、总结

本文详细介绍了如何使用Python爬取简单的网页数据,以掘金为例,展示了从发送HTTP请求、解析HTML文档到提取和保存数据的完整过程。通过这个示例,你可以掌握基本的网页爬取技巧,为后续的数据分析打下基础。希望本文对你有所帮助。


作者:Rjdeng

链接:https://juejin.cn/post/7400281441802584075

相关文章
|
22天前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
109 1
|
2月前
|
人工智能 数据可视化 Python
在Python中对数据点进行标签化
本文介绍了如何在Python中使用Matplotlib和Seaborn对数据点进行标签化,提升数据可视化的信息量与可读性。通过散点图示例,展示了添加数据点标签的具体方法。标签化在标识数据点、分类数据可视化及趋势分析中具有重要作用。文章强调了根据需求选择合适工具,并保持图表清晰美观的重要性。
64 15
|
1月前
|
数据采集 机器学习/深度学习 Web App开发
Python爬虫如何应对贝壳网的IP封禁与人机验证?
Python爬虫如何应对贝壳网的IP封禁与人机验证?
|
1月前
|
数据采集 Web App开发 JavaScript
无头浏览器技术:Python爬虫如何精准模拟搜索点击
无头浏览器技术:Python爬虫如何精准模拟搜索点击
|
1月前
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
22天前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
8月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
251 0
|
8月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
170 2
|
8月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
166 2
|
8月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南

推荐镜像

更多