python网页数据分析

news/2024/11/7 20:17:08/

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

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

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

图片

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

图片

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

图片

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

图片

图片

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

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

pip install Beautifulsoup4

pip install xlsxwriter

from bs4 import BeautifulSoupimport requestsimport 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.textsoup = 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 + 代码文件名,等待代码执行完毕即可。

图片

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

图片

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

        以上内容来自微信公众号 ‘HTML开发学习’,会分享一些前端的学习心得及总结,欢迎大家关注。


http://www.ppmy.cn/news/432323.html

相关文章

oVirt 4.4.10三节点超融合集群安装配置及集群扩容(二)

在上节安装完成3节点集群后&#xff0c;在此基础上扩容到6节点<oVirt每次扩容后的容量必须是3的倍数> 操作步骤 在原始第一台服务器访问https://192.168.5.100:9090/,在"Virtualiztion"->“Hosted Engin"下点击"Manage Gluster” 点击"Ex…

s5 android 7,三星手机安卓7.0升级最新名单:Galaxy S5、Note 4无缘

昨日开始&#xff0c;三星开始为欧版等Beta的Galaxy S7/S7 edge用户提送正式版Android 7.0系统更新&#xff0c;从截图来看&#xff0c;版本号1DPLT。 SamMobile称中国也有人获推&#xff0c;但并不准确&#xff0c;国行预计最快24号启动&#xff0c;赶在春节前。 值得注意的是…

三星 j3 android 8.0,加拿大三星S8/Note 8即将上安卓8.0:S7/A5/J3等手机同升级

IT之家3月12日消息 据外媒mobilesyrup报道&#xff0c;目前加拿大运营商Fido已经确认&#xff0c;三星即将为加拿大版本的Galaxy S8、Galaxy S8、Galaxy Note 8手机更新安卓8.0。 据了解&#xff0c;Galaxy S8和Galaxy S8将在3月19日开始接受Android 8.0更新的OTA&#xff0c;三…

a8三星手机android,三星A5更名A8 2018,将搭载骁龙660,运行安卓7.1.1

标签&#xff1a;骁龙660(137)全面屏(54)三星(4223) 据报道&#xff0c;明年发的三星A5将改名为A8 2018&#xff0c;这款手机将搭载全面屏和高通骁龙660处理器&#xff0c;发布时间预测将会在明年一月份&#xff0c;我们拭目以待。 从2017年下半年开始&#xff0c;全面屏已经席…

android 三星 安全,三星手机可以升级到Android 7.0,新老用户都必须看一下

[PConline新闻]日前&#xff0c;使用三星Exynos 8890处理器的欧洲版三星S7 / S7 edge Beta开发版的用户已收到官方的Android 7.0更新&#xff0c;但三星S7的国家银行版本/ S7 edge尚未更新消息. 但是三星手机怎么升级安卓系统版本&#xff0c;最近有消息称&#xff0c;国家银行…

三星a5009Android6.0,三星A5009 (Galaxy A5 电信版)一键救砖教程,轻松刷回官方系统

三星A5009 (Galaxy A5 电信版)手机变砖了怎么办?对于经常刷机的安卓玩家来说&#xff0c;碰到刷机失败导致三星A5009 (Galaxy A5 电信版)手机无法启动甚至无法进入recovery都是在所难免的事&#xff0c;这个时候我们就需要用到奇兔线刷大师线刷救砖功能了&#xff0c;它能轻松…

三星s4 android8,三星可升级安卓8.0设备名单泄露 S6无缘

中关村在线消息&#xff1a;现阶段对于大多数手机厂商而言&#xff0c;最重要的事情就是尽快推出基于安卓8.0优化的系统&#xff0c;并对品牌下的机型进行适配。此前&#xff0c;索尼与HTC等厂商在第一时间宣布了支持的机型&#xff0c;但到目前为止&#xff0c;三星也只针对S8…

Android 颜色金属效果,5种颜色金属机身仅6.7毫米_三星 GALAXY A5_手机Android频道-中关村在线...

◤一体成型的设计和钻石切割工艺◥ 三星GALAXY A5的外形设计称得上是非常简约了&#xff0c;6.7毫米的纤薄机身、一体式设计、钻石切割斜边等等细节之处不失精致。该机具有黑、白、金、粉、银5种颜色版本&#xff0c;笔者拿到的是白色版本。 除了一体成型的设计和钻石切割工艺&…