千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  怎么将查询到的网站后台数据用最方便的方式导出?

怎么将查询到的网站后台数据用最方便的方式导出?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 15:38:15

一、怎么将查询到的网站后台数据用最方便的方式导出

网页下载

为了能够下载数据并快速批量搜索数据库中的内容,用python写一段代码,用于自动下载网页文件并导出需要数据到Excel。观察后发现,网页链接是由前缀和数字组成的形如,https://xxxx./xxxxx.php?id=num,所以,将通过循环语句来完成下载。

import urllib.request#导入插件

#定义函数读取链接

def getHtml(url):

    html = urllib.request.urlopen(url).read() #调用urllib读取链接

    return html

#定义函数保存网页

def saveHtml(file_name, file_content):

    #注意windows文件命名的禁用符,比如 /

    with open(file_name.replace(‘/’, ‘_’) + “.html”, “wb”) as f:

        #写文件用bytes而不是str,所以要转码

        f.write(file_content)

#设定参数i,i为需要下载的网页数量

i = 1

for i in range(1,707):

    aurl = “https://xxxx/xxxx.php?id=” + str(i) #组合形成网页url

    html = getHtml(aurl)#调用函数读取链接到html字符串

    name = “文件” + str(i)#组合形成文件名

    saveHtml(name, html)#调用函数保存下载链接

    i += 1

print(‘下载成功’)

网页内容分析

网页共700个,网页下载下来后,需要进行数据分析提取。为了便于筛选和对比,我决定导出到excel比较方便。

根据分析网页内容,发现需要提取的内容都是被td标签所标记的,并且数值总在参量名的下一项,如下所示。

    软磁性能

                        有效磁导率

                        11.00

                       

所以,我决定调用bs4和pandas库来完成这项工作。

from bs4 import BeautifulSoup

import lxml

import requests

import pandas as pd

import numpy as np

#定义读取网页文件的函数

def read_html(path):           #读取单个html到pd

    htmlfile = open(path, ‘r’, encoding=’utf-8′)#打开地址所在的网页文件

    htmlhandle = htmlfile.read()#读取该网页文件全文到htmlhandle

    soup = BeautifulSoup(htmlhandle, ‘lxml’)#调用BeautifulSoup读取网页标签内容

    td_list = soup.find_all(‘td’)  # 找到所有td标签

    #创建三个列表,temporary是临时列表,result是用来存放带有td标签内容的列表,final是我们最终导出的列表

    result = []

    final = []

    temporary = []

    #将所有的td标签中的值导入result列表中

    for d in td_list:

        #print(d.string)#实时输出读取的值

        result.append(d.string) #实时将值保存到列表

    print(len(result)) #输出result项目数

    t = 0#创建顺序参量t,确保所有标签都被遍历

    for t in range(len(result)):

        if  result[t] != None:#确保标签不是空,防止程序报错

           if  result[t] == ‘类型’:#比对标签内容,如果相同就打印下一项(参数)

                print(result[t+1])

                temporary.append(result[t+1])#将下一项添加到临时列表的最后

    #如果临时列表不为零,则将临时列表的内容添加到final列表,否则就在final列表中添加‘无’,确保最终参数顺序不会错

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []#将临时列表清零

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘成份配比’:

                print(result[t+1])

                temporary.append(result[t+1])

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘饱和磁感应强度(T)’:

                print(result[t+1]+’T’)

                temporary.append(result[t+1]+’T’)

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘矫顽力’:

                print(result[t+1]+’A/m’)

                temporary.append(result[t+1]+’A/m’)

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘有效磁导率’:

                print(result[t+1])

                temporary.append(result[t+1])

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘热处理温度’:

                print(result[t+1])

                temporary.append(result[t+1]+’℃’)

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘热处理时间’:

                print(result[t+1])

                temporary.append(result[t+1]+’min’)

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    t = 0

    temporary = []

    for t in range(len(result)):

        if  result[t] != None:

           if  result[t] == ‘出处’:

                print(result[t+1])

                temporary.append(result[t+1])

    if len(temporary) != 0:

        final.extend(temporary)

    else:

        final.append(‘无’)

    df = pd.DataFrame(final)#将final转化为panda数据帧

    return df                     #返回参数

path = ‘./文件1.html’#初始文件路径

df1 = read_html(path)                #调用函数

number = 700#需要读取的文件数目

for i in range(2,number):#循环读取余下文件,其中组合参数名使用locals()函数来创建

    path = “./文件” + str(i) +”.html”

    locals()[‘df’+str(i)]= read_html(path)#循环创造dfn函数

    i += 1

writer = pd.ExcelWriter(‘./stat.xlsx’, engine=’xlsxwriter’) #创建excel文件,注意路径中的数/,与windows中的\不同

df1.to_excel(writer, sheet_name=’Sheet1′)  # 起始写入位置, A1列.

for i in range(2,number):#利用local()批量调用刚才创建的函数

    locals()[‘df’+str(i)].to_excel(writer, sheet_name=’Sheet1’, startcol=i,index=None,header=True)

    i += 1

writer.save() #保存文件

print(“全部信息爬取完毕,请查看Excel文件”)

延伸阅读:

二、应用架构是什么

应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:

企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。单个系统的应用架构:在开发或设计单一IT系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴,不过各个系统的架构设计需要遵循企业总体应用架构原则。
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

Hbase适合存哪些数据?

2023-10-14

什么是采购管理?

2023-10-14

什么是ai算法?

2023-10-14

最新文章NEW

linux系统中的安全设置有哪些?

2023-10-14

golp是什么设备?

2023-10-14

app的启动流程都包括哪些步骤?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>