Python简单爬虫导出CSV文件的实例讲解

首先我们需要明确一下,网页爬虫是用来从互联网上抓取数据的一种程序。而CSV是一种常用的数据格式,它是一种简单的、基于文本的表格表示方法,用于表示由逗号分隔的值(即CSV文件)。

那么,如何在Python中编写一个简单的爬虫程序,并将爬取到的数据导出为CSV文件呢?下面我会详细介绍。

一、准备工作

在开始编写爬虫程序之前,我们需要安装一些必要的Python库,包括:

  1. requests库:用来发送HTTP请求,获取网页的内容。
  2. Beautifulsoup4库:用来解析HTML和XML文档。

安装命令如下:

pip install requests
pip install beautifulsoup4

二、编写爬虫程序

在安装好必要的库之后,我们就可以开始编写爬虫程序了。这里以爬取豆瓣电影Top250为例。具体步骤如下:

  1. 导入必要的库:
import csv
import requests
from bs4 import BeautifulSoup
  1. 设置请求头,用来模拟浏览器发送请求:
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
  1. 发送请求,获取网页内容:
url = "https://movie.douban.com/top250"
response = requests.get(url, headers=headers)
  1. 解析HTML文档,获取需要的数据:
soup = BeautifulSoup(response.text, "html.parser")
movie_list = soup.find_all("div", class_="hd")

这里使用了Beautifulsoup4库来解析HTML文档,其中soup.find_all()方法用来查找符合条件的所有标签,这里查找的是<div class="hd">标签,它包含电影的名称和链接。

  1. 将数据导出为CSV文件:
with open("movies.csv", "w", newline="", encoding="utf-8-sig") as f:
   writer = csv.writer(f)
   writer.writerow(["电影名称", "电影链接"])
   for movie in movie_list:
      name = movie.a.span.text.strip()
      url = movie.a["href"]
      writer.writerow([name, url])

这里使用了Python内置的csv库,csv.writer()方法用来写入CSV文件,其中writer.writerow()方法用来写入每一行数据。

在上面的例子中,我们将电影的名称和链接写入CSV文件中。

三、示例说明

这里再举两个示例,来说明如何爬取不同网站的数据,并将数据导出为CSV文件。

1.爬取新浪新闻的热点新闻

import csv
import requests
from bs4 import BeautifulSoup

url = "https://news.sina.com.cn/hotnews/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
news_list = soup.find_all("a", target="_blank", href=True)

with open("news.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["新闻标题", "新闻链接"])
    for news in news_list:
        title = news.text.strip()
        url = news["href"]
        writer.writerow([title, url])

在这个示例中,我们爬取了新浪新闻的热点新闻,并将新闻的标题和链接导出为CSV文件。

2.爬取知乎上关于Python的所有问题

import csv
import requests
from bs4 import BeautifulSoup

url = "https://www.zhihu.com/search?type=content&q=python"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
question_list = soup.find_all("h2")

with open("questions.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["问题", "问题链接"])
    for question in question_list:
        title = question.a.text.strip()
        url = "https://www.zhihu.com" + question.a["href"]
        writer.writerow([title, url])

在这个示例中,我们爬取了知乎上关于Python的所有问题,并将问题的标题和链接导出为CSV文件。

以上是关于Python简单爬虫导出CSV文件的实例讲解的完整攻略,希望可以帮助到大家。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python简单爬虫导出CSV文件的实例讲解 - Python技术站

(1)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python 数据可视化pyecharts的使用详解

    Python 数据可视化pyecharts的使用详解 1. 简介 pyecharts是Python中基于Echarts JavaScript可视化框架的一个图表库,旨在用于数据可视化。它支持多种图表类型和交互式数据表现,可以轻松地生成美观、交互式、可应用于web网页的图表,使数据的可视化处理变得更加简洁高效。 2. 安装 在开始使用前,需要先安装pyecha…

    python 2023年5月20日
    00
  • python执行使用shell命令方法分享

    下面是关于python执行使用shell命令的完整攻略: 1. 背景知识 在Linux下,我们可以使用shell命令来完成一些系统管理操作,比如创建、删除、移动目录、查看文件列表等等。Python提供了执行shell命令的方法,使得我们可以在Python程序中执行shell命令,这样就可以方便地完成一些系统管理操作。 2. shell命令执行函数 在Pyth…

    python 2023年6月2日
    00
  • python爬虫系列网络请求案例详解

    python爬虫系列网络请求案例详解 本教程将为您逐步展示如何使用Python进行网络请求并分析响应。我们将包括以下主题: 使用requests库发出GET请求 解析响应文本和内容 获取响应信息(状态码,头部信息等) 使用参数和headers定制请求 发出POST请求并解析响应 使用代理进行网络请求 1. 使用requests库发出GET请求 最常见的网络请…

    python 2023年5月14日
    00
  • python中使用iterrows()对dataframe进行遍历的实例

    使用iterrows()方法可以对DataFrame进行遍历。以以下数据为例: import pandas as pd df = pd.DataFrame({‘name’:[‘Amy’, ‘Bob’, ‘Charlie’], ‘age’:[26, 28, 25], ‘score’:[85, 91, 89]}) 示例一 我们可以通过iterrows()对Dat…

    python 2023年5月14日
    00
  • Python 离线工作环境搭建的方法步骤

    下面是Python离线工作环境搭建的方法步骤: 环境准备 首先,我们需要一台联网电脑,在网上下载Python所需的安装包文件,以及Python所需要的第三方库以及对应的依赖库。将这些文件保存到本地,得到离线安装包。 离线安装Python 安装Python时需要在离线环境下使用命令行进行安装,所以需要打开命令行工具。 进入Python安装包所在目录,解压安装包…

    python 2023年5月14日
    00
  • python操作Excel神器openpyxl看这一篇就够了

    下面是关于如何使用openpyxl进行操作Excel的教程。 简介 openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它在Python中提供了一种简单,有效的方法来操作Excel文件,而无需使用Microsoft Excel软件。 安装 安装openpyxl库可以使用pip命令: pip i…

    python 2023年5月13日
    00
  • python辗转相除法求最大公约数和最小公倍数的实现

    下面是完整的“python辗转相除法求最大公约数和最小公倍数的实现”的攻略: 什么是辗转相除法 辗转相除法,也称为欧几里得算法,是一种求最大公约数的方法。其基本思路是:将两个数中较大的数除以较小的数,得到余数后,将较小的数和余数继续进行相除,直到余数为0,此时较小的数就是原来两个数的最大公约数。辗转相除法是求最大公约数的一种简单高效的算法。 辗转相除法求最大…

    python 2023年6月5日
    00
  • python编码问题汇总

    以下是关于Python编码问题汇总的完整攻略: 问题描述 在Python中,编码问题是一个常见的问题。在处理文本、文件、网络数据等方面,可能会遇到编码问题。了解这些问题可以帮助我们更好地处理文本和数据。 解决方法 可以使用以下步骤解决Python编码问题: 确认编码格式。 在处理文本和数据时,需要确认编码格式。可以使用chardet库或其他工具检测编码格式。…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部