今天,给大家带来一个python很棒的应用,那就用python技术进行数据分析,通过python获取网页信息,并将得到的信息整理成表格,保存在本地。这个有什么用呢?举个栗子:比如你想买个手表,你想快速的对比各个款式的一些信息,那么这篇文章就能帮到你解决这个问题。

    简单讲下过程,首先我们需要拿到电商网站的数据,然后过滤,获取我们需要的内容,然后把创建一个excel表格,把内容填进去,并保存在本地。

    以易贝网为例,我们查询卡西欧手表,可以看到下面的页面,圈出部分就是产品的展示列表,

python 网页检测 python网页分析_python 网页检测

我们再按F12,点击箭头再点击一个产品查看对应的HTML结构,

python 网页检测 python网页分析_数据_02

同样,查看图片的标签,这样我们可以找到图片的标签和图片的地址,

python 网页检测 python网页分析_python 网页检测_03

然后同样的方法查找产品的价格和描述,

python 网页检测 python网页分析_python_04

python 网页检测 python网页分析_数据_05

以上,就是我们需要的数据,接下来我们通过python,把数据整合到表格,

import引入的模块需要自己安装下,命令行进入到代码保存的路径下,然后执行下面的安装命令,

pip install Beautifulsoup4

pip install xlsxwriter

from bs4 import BeautifulSoup
import requests
import os
#创建路径
d='./Casio/'
if not os.path.exists(d):
    os.mkdir(d)
#xlwt处理表格插件
import xlsxwriter 
# 文件对象
book = xlsxwriter.Workbook(d+'casio3.xls')
# 新建一个切页
sheet1 = book.add_worksheet("Casio3")
# 往切页中插入数据
# sheet1.write(横座标,纵座标,内容)
sheet1.write(0,0,'图片')
sheet1.write(0,1,'url')
sheet1.write(0,2,'价格')
sheet1.write(0,3,'描述')
#获取页面内容
r = requests.get('https://cn.ebay.com/b/Casio/bn_21821887?_pgn=3')
demo = r.text
soup = BeautifulSoup(demo,"html.parser")
soup.prettify()
#获取产品列表部分
items = soup.find_all('li',class_='s-item--large')
#print(items)
#创建列表
arr = []
for item in items:
    #创建子列表
    arr1 = []
    #获取图片
    imgDom = item.find('img',class_='s-item__image-img')
    if 'data-src' in imgDom.attrs:
        arr1.append(imgDom['data-src'])
    else:
        arr1.append(imgDom['src'])
    #添加价格
    priceDom1 = item.find(class_='s-item__price')
    arr1.append(priceDom1.text)
    
    #添加描述
    msg = item.find(class_='s-item__title')
    arr1.append(msg.text)
    
    arr.append(arr1)
#打印出数据列表
print(arr)
import io
# 使用add_fromat方法设置单元格的格式
bold = book.add_format({'bold': True}) # 添加粗体格式
money = book.add_format({'num_format': '$#,##0'}) # 添加数字格式
#遍历列表并生成表格
for line in arr:
    row_num = arr.index(line)+1
    for value in line:
        col_num = line.index(value)
        #print(col_num)
        if col_num == 0:
            m = requests.get(value)
            #创建二进制流
            image = io.BytesIO( m.content)
            #表格中插入图片,并缩小图片
            sheet1.insert_image(row_num, col_num,value,{'image_data':image,'x_scale': 0.3, 'y_scale': 0.3})
            #添加图片地址
            sheet1.write(row_num,col_num+1,value)
        else:
            #表格添加其他数据
            sheet1.write(row_num,col_num+1,value,bold)
# 保存数据,保存文档
book.close()

命令行进到代码路径,执行python + 代码文件名,等待代码执行完毕即可。

python 网页检测 python网页分析_大数据_06

代码执行完毕后,我们进入到代码所在的文件夹下,找到Casio文件夹,可以看到已经生成的excel文件,点击打开

python 网页检测 python网页分析_数据_07

表格已经生成,很方便的就可以查看。

     

python 网页检测 python网页分析_大数据_08