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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 在数据分析中,数据的获取是第一步。随着互联网的普及,网络爬虫成为获取数据的重要手段。本文将详细介绍如何使用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

相关文章
|
5天前
|
数据采集 JSON API
深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
本文介绍如何使用Python结合淘宝开放平台API获取指定店铺所有商品数据。首先需注册淘宝开放平台账号、创建应用并获取API密钥,申请接口权限。接着,通过构建请求、生成签名、调用接口(如`taobao.items.search`和`taobao.item.get`)及处理响应,实现数据抓取。代码示例展示了分页处理和错误处理方法,并强调了调用频率限制、数据安全等注意事项。此技能对开发者和数据分析师极具价值。
|
9天前
|
JSON API 数据格式
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
|
5天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
4天前
|
人工智能 自然语言处理 程序员
用通义灵码开发一个Python时钟:手把手体验AI程序员加持下的智能编码
通义灵码是基于通义大模型的AI研发辅助工具,提供代码智能生成、研发问答、多文件修改等功能,帮助开发者提高编码效率。本文通过手把手教程,使用通义灵码开发一个简单的Python时钟程序,展示其高效、智能的编码体验。从环境准备到代码优化,通义灵码显著降低了开发门槛,提升了开发效率,适合新手和资深开发者。最终,你将体验到AI加持下的便捷与强大功能。
|
4天前
|
数据采集 Web App开发 API
B站高清视频爬取:Python爬虫技术详解
B站高清视频爬取:Python爬虫技术详解
|
8天前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
4月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
212 6
|
7月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
346 4
|
8月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
129 4
|
7月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。

热门文章

最新文章