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

首页 / 常见问题 / 低代码开发 / 怎么将查询到的网站后台数据用最方便的方式导出
作者:低代码开发工具 发布时间:10-25 13:58 浏览量:4771
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

为了能够下载数据并快速批量搜索数据库中的内容,用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系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴,不过各个系统的架构设计需要遵循企业总体应用架构原则。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

什么是外向潜在客户开发
10-30 10:47
产品开发过程的阶段有哪些
10-30 10:47
系统开发图片太大如何处理
10-30 10:47
什么是软件开发团队管理
10-30 10:47
呼叫系统开发实施做什么
10-30 10:47
开发选址如何管理团队
10-30 10:47
敏捷软件开发如何运作?
10-30 10:47
门禁系统开发厂家有哪些
10-30 10:47
销售系统开发平台有哪些
10-30 10:47

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流