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

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

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

一、环境准备

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

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

安装命令如下:

pip install requests beautifulsoup4 pandas

二、了解目标网站

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


首先,打开浏览器,进入掘金首页(juejin.cn/),并查看网页的HTM…

三、发送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的文件,文件内容如下:

1723472708152.jpg

九、总结

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


作者:Rjdeng

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

相关文章
|
18天前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
28天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
620 1
|
29天前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
252 0
|
21天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
24天前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
28天前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
491 6
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
499 4
|
数据采集 JSON 前端开发
Python爬虫进阶:使用Scrapy库进行数据提取和处理
在我们的初级教程中,我们介绍了如何使用Scrapy创建和运行一个简单的爬虫。在这篇文章中,我们将深入了解Scrapy的强大功能,学习如何使用Scrapy提取和处理数据。
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。

推荐镜像

更多