• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

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

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

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

网页下载

为了能够下载数据并快速批量搜索数据库中的内容,用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标签所标记的,并且数值总在参量名的下一项,如下所示。

    <td class=”lt t”>软磁性能</td>

                        <td class=”lt”>有效磁导率</td>

                        <td>11.00</td>

                        <td></td>

所以,我决定调用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系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴,不过各个系统的架构设计需要遵循企业总体应用架构原则。
相关文章