Python爬虫实战指南:如何爬取数据并存储到数据库 在数据时代,数据分析越来越受到重视,而数据的获取则成为了数据分析中重要的一环。例如,如果我们需要对某个网站的数据进行分析,我们可以使用Python爬虫来获取该网站的数据,然后存储到数据库中进行后续的分析。 在本篇文章中,我们将介绍如何使用Python爬虫来获取网站的数据,并将数据存储到本地的MySQL数据库中。 知识点概述: 1. Python爬虫库:requests、BeautifulSoup、re、pymysql 2. MySQL数据库的基本操作:连接数据库、创建表、插入数据、查询数据 环境配置: 在开始之前,需要安装Python3以及相应的爬虫库requests、BeautifulSoup、re和MySQL数据库的Python操作库pymysql。 爬取数据: 首先我们需要了解需要爬取的网站的数据结构,并找到我们需要的数据所在的HTML标签及其属性。在本次实战中,我们以电商网站为例,爬取该网站商品的名称、价格和评论数。 首先,我们通过requests库向指定网址发送请求: ```python import requests url = "https://www.example.com/" 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) ``` 接着,我们可以使用BeautifulSoup库来解析网页HTML,并获取我们需要的数据: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') items = soup.find_all('div', class_='item') for item in items: name = item.find('a', class_='name').text price = item.find('span', class_='price').text comment_num = item.find('span', class_='comment_num').text ``` 这里将解析得到的数据存储在变量name、price和comment_num中,我们可以使用正则表达式(re)对数据进行进一步处理。例如,如果需要将价格转换为浮点数,我们可以使用以下代码: ```python import re price = float(re.search(r'\d+.\d+', price).group()) ``` 存储到数据库: 数据爬取完成后,我们需要将爬取得到的数据存储到本地的MySQL数据库中,方便后续的查询和分析。 首先,我们需要安装MySQL数据库,并创建一个数据库和数据表用于存储爬取得到的数据。这里假设我们已经创建了名为example的数据库和名为items的数据表。 使用pymysql库连接数据库后,我们可以通过以下代码将数据添加到数据表中: ```python import pymysql db = pymysql.connect(host='localhost', user='root', password='password', database='example', port=3306) cursor = db.cursor() for item in items: name = item.find('a', class_='name').text price = float(re.search(r'\d+.\d+', item.find('span', class_='price').text).group()) comment_num = int(item.find('span', class_='comment_num').text) sql = "INSERT INTO items(name, price, comment_num) VALUES('%s', '%f', '%d')" % (name, price, comment_num) try: cursor.execute(sql) db.commit() except: db.rollback() db.close() ``` 在以上代码中,我们首先通过pymysql库连接到数据库,然后使用INSERT语句将数据添加到数据表中。注意,拼接INSERT语句时需要注意数据类型的转换和SQL注入的问题。 结论: 本篇文章介绍了如何使用Python爬虫来爬取网站的数据,并将数据存储到本地的MySQL数据库中。在技术实现上,我们使用了requests、BeautifulSoup、re和pymysql等Python库,掌握以上技术点可以为以后的数据分析提供更多的数据来源。