Python爬虫实战之爬取京东商品数据并实实现数据可视化

yizhihongxing

那我就为你讲解一下“Python爬虫实战之爬取京东商品数据并实现数据可视化”的完整攻略。

一、爬取京东商品数据

1.1 获取搜索链接

首先,我们需要打开京东首页,在搜索框中输入我们要爬取的商品关键词,比如“小米手机”。然后点击搜索,进入搜索结果页面。

接着,我们需要分析搜索结果页面的url,找到关键词“小米手机”在url中的表现。经过观察,我们发现搜索结果页面的url类似于以下形式:

https://search.jd.com/Search?keyword=小米手机&enc=utf-8&wq=小米手机&pvid=94e9d11f231540f8b1918c02a3b33af9

可以看到,搜索关键词“小米手机”出现在了url的参数中,参数名为“keyword”。

因此,我们可以根据自己的需求,构造出不同的url来进行爬取。

1.2 解析与分析页面

通过上述步骤,我们已经得到了要爬取的页面url。接下来,我们需要使用Python中的requests库发送请求获取页面内容,然后使用BeautifulSoup库进行页面解析。

具体的代码示例:

import requests
from bs4 import BeautifulSoup

url = 'https://search.jd.com/Search?keyword=小米手机&enc=utf-8&wq=小米手机&pvid=94e9d11f231540f8b1918c02a3b33af9'
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')

在获取到页面的内容后,我们需要使用BeautifulSoup库进行解析。通常情况下,我们会使用标签和class来定位需要的元素。

比如,我们要获取每个商品的名称和价格,可以根据页面分析,找到每个商品的信息块所在的标签和class:

<div class="gl-i-wrap">
    <div class="p-img">
        <a target="_blank" title="小米10至尊纪念版 120X双曲面环幕柔性屏 骁龙865+ LPDDR5 UFS3.1高速闪存 120W+大功率有线充 骁龙优选 拍照狂人 12GB+256GB" href="//item.jd.com/100012043808.html" onclick="searchlog(1,100012043808,0,2,'','flagsClk=1073672847')">
            <img class="err-product" data-img="1" width="220" height="220" src="//img14.360buyimg.com/n7/jfs/t1/126138/1/12345/65196/5f9f2eb5Ef7f6016e/75fdce52a83c71f5.jpg">
        </a>
    </div>
    <div class="p-price">
        <strong class="J_100012043808" data-done="done" data-price="5198.00">¥5198.00</strong>
    </div>
    ...
</div>

通过对上面的代码进行解析,我们可以得到每个商品的名称和价格。

1.3 存储到数据库

在获取到需要的商品数据后,我们可以将其存储到数据库中以备后续分析和使用。

具体的代码示例:

import pymysql

db = pymysql.connect(host='localhost', user='root', password='123456', database='jd', charset='utf8')
cursor = db.cursor()

sql = """
    CREATE TABLE IF NOT EXISTS goods (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255),
        price FLOAT
    )
"""
cursor.execute(sql)

for product in products:
    name = product['name']
    price = product['price']
    sql = '''insert into goods (name, price) values ('{}',{})'''.format(name, price)
    cursor.execute(sql)
db.commit()

在上述代码中,我们首先连接上本地的MySQL数据库,并创建了一个名为“goods”的表。然后,我们遍历所有获取到的商品信息,并将其存储到数据库中。

至此,我们已经完成了京东商品数据的爬取。接下来,我们需要对数据进行分析。

二、实现数据可视化

2.1 连接数据库并获取数据

首先,我们需要连接上数据库,并从中获取需要的数据。

具体的代码示例:

import pymysql

db = pymysql.connect(host='localhost', user='root', password='123456', database='jd', charset='utf8')
cursor = db.cursor()

sql = "select * from goods"
cursor.execute(sql)

data = cursor.fetchall()

在代码中,我们连接上了MySQL数据库,然后执行了一个sql语句来获取数据库中保存的商品数据。最后,我们使用fetchall方法将获取到的数据存储到变量data中。

2.2 利用Matplotlib绘制图表

得到数据后,接下来我们就可以通过使用Matplotlib库来实现数据可视化。

比如,我们可以使用柱状图来对商品价格进行可视化:

import numpy as np
import matplotlib.pyplot as plt

prices = [i[2] for i in data]
names = [i[1] for i in data]

plt.bar(range(len(prices)), prices, tick_label=names, color='rgb')
plt.xticks(rotation=90)
plt.show()

在代码中,我们首先通过获取到的数据,分别得到了商品名称和价格,并将它们分别存储到names和prices变量中。然后,我们使用Matplotlib的bar方法绘制出柱状图,并将商品名称作为横坐标,价格作为纵坐标。最后,我们通过show方法展示出图表。

2.3 利用WordCloud绘制词云图

除了柱状图,我们还可以使用WordCloud库来实现对商品名称的可视化。

具体的代码示例:

from wordcloud import WordCloud

text = ' '.join(names)
wordcloud = WordCloud(font_path='C:/Windows/Fonts/simkai.ttf', background_color='white').generate(text)

plt.imshow(wordcloud)
plt.axis('off')
plt.show()

在上述代码中,我们首先通过join方法将所有的商品名称合并成一个字符串,并存储到变量text中。然后,我们使用WordCloud库的generate方法生成词云图,并设置字体和背景颜色。最后,我们通过imshow和axis方法展示出词云图。

三、示例说明

示例1:实现二手车价格分析和可视化

我们可以通过爬虫程序收集二手车价格数据,并保存到数据库中。然后,通过数据分析和可视化技术,可以找出哪些二手车品牌或车型价格比较高或比较低,从而为人们选择二手车提供更加详尽的参考意见。

具体的分析和可视化方法,可以采用Matplotlib绘制散点图、柱状图和箱型图等数据图形。

示例2:实现电影票房数据分析和可视化

我们可以通过爬虫程序收集电影票房数据,并将数据保存到数据库中。然后,通过数据分析和可视化技术,可以找出哪些电影的票房表现比较好或比较差,从而为电影制片人、发行商或电影院提供更加详尽的参考意见。

具体的分析和可视化方法,可以采用Matplotlib绘制条形图、折线图、散点图、热力图等数据图形。同时,也可以使用WordCloud库分析并展示不同电影名字的热度。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫实战之爬取京东商品数据并实实现数据可视化 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Python 中Django验证码功能的实现代码

    Python中Django验证码功能的实现,可以借助第三方库django-simple-captcha来实现。下面是实现验证码功能的具体步骤: 安装django-simple-captcha $ pip install django-simple-captcha 配置settings.py 在settings.py的INSTALLED_APPS中加入capt…

    python 2023年5月14日
    00
  • Python实现自定义包的实例详解

    Python实现自定义包的实例详解 在Python中,我们可以使用自定义包来组织和管理我们的代码。自定义包可以将相关的模块组织在一起,方便我们进行管理和维护。本文将详细介绍如何实现自定义包,并提供两个示例说明。 创建自定义包 要创建自定义包,我们需要按照以下步骤进行操作: 创建一个目录,用于存放自定义包的代码。 在目录中创建一个__init__.py文件,用…

    python 2023年5月14日
    00
  • Python中zip()函数的解释和可视化(实例详解)

    Python中zip()函数的解释和可视化(实例详解) 1. zip()函数简介 zip()函数是Python内置的常用函数之一,它用于将多个序列转换成元组。在Python3中,zip()函数返回的是一个zip对象,需要通过list()函数将其转换为列表。 zip()函数的语法如下: zip([iterable1[, iterable2[, iterable…

    python 2023年5月14日
    00
  • Python中的sys.stdout.write实现打印刷新功能

    在Python中,sys.stdout.write方法的作用可以让我们直接向标准输出流(stdout)中写入内容。通过这个方法,我们可以在控制台上打印内容,并且还可以实现打印刷新的功能,让我们更方便地观察程序输出的结果。下面是Python中的sys.stdout.write实现打印刷新功能的完整攻略。 1. 导入sys模块 在使用sys.stdout.wri…

    python 2023年6月5日
    00
  • Python实现图像和办公文档处理的方法和技巧

    Python实现图像和办公文档处理的方法和技巧 本文将介绍Python实现图像和办公文档处理的方法和技巧,包括常用的库、基本操作和示例说明。 常用的库 在Python中,实现图像和办公文档处理的重要库有Pillow、OpenCV、PyPDF2和python-docx等。其中,Pillow和OpenCV用于图像处理,而PyPDF2和python-docx用于办…

    python 2023年5月18日
    00
  • python+excel接口自动化获取token并作为请求参数进行传参操作

    首先,我们需要安装两个Python库:requests 和 openpyxl。 安装方法:在命令行中输入以下指令 pip install requests pip install openpyxl 接下来,我们来说一下获取token的过程: 在excel文件中,我们需要设置一个sheet,用于存储token信息。在这个sheet中,我们可以设置两行,第一行为…

    python 2023年6月5日
    00
  • python协程gevent案例 爬取斗鱼图片过程解析

    下面是关于“python协程gevent案例 爬取斗鱼图片过程解析”的完整攻略。 1. 什么是协程 协程是一种轻量级线程,Python的协程是基于生成器的协程。协程与线程的区别在于,线程是抢占式多任务,需要操作系统进行上下文切换,而协程是非抢占式多任务,通过协程程序员来控制何时上下文切换。 Python的协程一般使用yield关键字来实现,使用yield来挂…

    python 2023年6月3日
    00
  • 跟老齐学Python之集成开发环境(IDE)

    下面我来详细讲解如何在跟老齐学Python的学习过程中,配置适用于Python的集成开发环境(IDE)。主要分以下几步: 一、安装Python环境并配置环境变量 下载Python安装包并安装,建议使用Python3或Python3以上版本; 配置Python的环境变量,将Python的安装路径加入到系统环境变量中; 打开命令行工具,输入“python”,出现…

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