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

相关文章
|
6天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
3天前
|
存储 数据库连接 API
Python环境变量在开发和运行Python应用程序时起着重要的作用
Python环境变量在开发和运行Python应用程序时起着重要的作用
35 15
|
7天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
8天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
10天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
37 3
如何使用Python开发API接口?
|
3天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
16 1
|
3天前
|
数据采集 前端开发 JavaScript
除了网页标题,还能用爬虫抓取哪些信息?
爬虫技术可以抓取网页上的各种信息,包括文本、图片、视频、链接、结构化数据、用户信息、价格和库存、导航菜单、CSS和JavaScript、元数据、社交媒体信息、地图和位置信息、广告信息、日历和事件信息、评论和评分、API数据等。通过Python和BeautifulSoup等工具,可以轻松实现数据抓取。但在使用爬虫时,需遵守相关法律法规,尊重网站的版权和隐私政策,合理控制请求频率,确保数据的合法性和有效性。
|
9天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
10天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
13天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化