CN112989233A - 文件下载方法、装置及存储介质 - Google Patents
文件下载方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112989233A CN112989233A CN201911215313.8A CN201911215313A CN112989233A CN 112989233 A CN112989233 A CN 112989233A CN 201911215313 A CN201911215313 A CN 201911215313A CN 112989233 A CN112989233 A CN 112989233A
- Authority
- CN
- China
- Prior art keywords
- webpage
- file
- download
- downloading
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004088 simulation Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Abstract
本公开揭示了一种文件下载方法、装置及存储介质,属于数据处理技术领域。所述方法包括:获取各个网页的网页信息,然后通过各个网页的网页信息,获取包含下载链接的指定网页的网页链接,接着根据指定网页的网页链接,获取指定网页中的下载文件的超链接标签,最后通过下载文件的超链接标签,对下载文件进行下载。通过上述方案,可以通过从网页中直接获取下载文件相关的信息,避免了通过多次身份认证,多次请求服务端提供专用接口获取下载文件相关的信息,简化了文件下载的操作,从而提高了文件下载的稳定性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种文件下载方法、装置及存储介质。
背景技术
如今,随着互联网技术的日益发展,网页作为构成网站的最基本元素,已经被大众所广泛应用。
网页上包含大量的信息,其中就包括了可以进行下载的文件。为了下载网页上的文件,首先需要向服务端提供令牌或者密钥等身份认证信息,请求服务端提供专用的接口获取网页上的信息,然后需要向服务端提供认证信息,通过专用的接口获取文件的下载链接,最后通过文件的下载链接向服务端提供认证信息,请求服务端提供下载文件的专用接口进行文件下载。
然而,由于相关技术中在下载文件的过程中,需要进行多次的身份认证请求专用的接口进行文件的下载,导致文件下载的操作复杂且文件下载的过程存在不可控性。
发明内容
本公开提供一种文件下载方法、装置及存储介质。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种文件下载方法,其特征在于,所述方法包括:
获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
通过所述下载文件的超链接标签,对所述下载文件进行下载。
可选的,所述通过所述下载文件的超链接,对所述下载文件进行下载之后,还包括:
根据所述下载文件的超链接标签,获取所述下载文件的下载文件名称;
根据默认下载位置和所述下载文件名称确定所述下载文件的完成状态,所述完成状态用来指示所述下载文件是否下载完成。
可选的,所述根据所述默认下载位置和所述下载文件名称确定所述下载文件的完成状态,包括:
当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
可选的,所述通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接,包括:
解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
可选的,所述根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签,包括:
通过所述指定网页的网页链接打开所述指定网页;
检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
可选的,所述解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息,包括:
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
可选的,所述通过所述下载文件的超链接标签,对所述下载文件进行下载,包括:
通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
根据本公开实施例的第二方面,提供了一种文件下载装置,其特征在于,所述装置包括:
信息获取模块,用于获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
网页获取模块,用于通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
超链接获取模块,用于根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
文件下载模块,用于通过所述下载文件的超链接标签,对所述下载文件进行下载。
可选的,所述装置还包括:
名称获取模块,用于通过所述下载文件的超链接,对所述下载文件进行下载之后,根据所述下载文件的超链接标签,获取所述下载文件的下载文件名称;
状态确定模块,用于根据默认下载位置和所述下载文件名称确定所述下载文件的完成状态,所述完成状态用来指示所述下载文件是否下载完成。
可选的,所述状态确定模块,包括:
下载完成子模块,用于当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
下载未完成子模块,用于当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
可选的,所述网页获取模块,包括:
指示信息获取子模块,用于解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
链接拼接子模块,用于根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
可选的,所述超链接获取模块,包括:
网页打开子模块,用于通过所述指定网页的网页链接打开所述指定网页;
超链接检索子模块,用于检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
可选的,所述指示信息获取子模块,用于,
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
可选的,所述文件下载模块,包括:
文件下载子模块,用于通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
根据本公开实施例的第三方面,提供了一种文件下载装置,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
通过所述下载文件的超链接标签,对所述下载文件进行下载。
根据本公开实施例的第四方面,提供了一种计算机设备可读存储介质,所述计算机设备可读存储介质中包含可执行指令,所述可执行指令由处理器调用执行,以实现上述第一方面或者第一方面的任一可选方案所述的文件下载方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
首先获取各个网页的网页信息,其中,网页信息为对应的网页上显示的文字信息,然后通过各个网页的网页信息,获取包含下载链接的指定网页的网页链接,接着根据指定网页的网页链接,获取指定网页中的下载文件的超链接标签,最后通过下载文件的超链接标签,对下载文件进行下载。通过上述方案,可以通过从网页中直接获取下载文件相关的信息,避免了通过多次身份认证,多次请求服务端提供专用接口获取下载文件相关的信息,简化了文件下载的操作,从而提高了文件下载的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种文件下载方法的流程图;
图3是根据另一示例性实施例示出的一种文件下载方法的流程图;
图4是根据另一示例性实施例示出的一种文件下载方法流程的示意图;
图5是根据一示例性实施例示出的一种文件下载装置的框图;
图6是根据一示例性实施例示出的一种终端的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境中包括终端120和服务器140。
终端120与服务器140之间通过有线或无线网络相连。
服务器140是一台服务器、若干台服务器构成的服务器集群或云计算中心。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
图2是根据一示例性实施例示出的一种文件下载方法的流程图。如图2所示,该文件下载方法可以应用于终端中,通过在终端输入指令在服务器端获取下载文件存入终端中比如,该终端可以是图1所示的终端120,该服务器可以是图1所示的服务器140。如图2所示,该文件下载方法可以包括以下步骤:
在步骤201中,获取各个网页的网页信息,该网页信息为对应的网页上显示的文字信息。
在步骤202中,通过该各个网页的网页信息,获取包含下载链接的指定网页的网页链接。
在步骤203中,根据该指定网页的网页链接,获取该指定网页中的下载文件的超链接标签。
在步骤204中,通过该下载文件的超链接标签,对该下载文件进行下载。
可选的,该通过该下载文件的超链接,对该下载文件进行下载之后,还包括:
根据该下载文件的超链接标签,获取该下载文件的下载文件名称;
根据默认下载位置和该下载文件名称确定该下载文件的完成状态,该完成状态用来指示该下载文件是否下载完成。
可选的,该根据该默认下载位置和该下载文件名称确定该下载文件的完成状态,包括:
当该默认下载位置存在对应该下载文件名称的文件时,确定该下载文件下载完成;
或者,
当该默认下载位置不存在对应该下载文件名称的文件时,确定该下载文件下载未完成。
可选的,该通过该各个网页的网页信息,获取包含下载链接的指定网页的网页链接,包括:
解析该各个网页的网页信息,获取该各个网页的网页信息中包含的下载指示信息;该下载指示信息是用于指示该下载文件的信息;
根据该各个网页的网页信息中包含的下载指示信息,拼接得到该各个指定网页的网页链接。
可选的,该根据该指定网页的网页链接,获取该指定网页中的下载文件的超链接标签,包括:
通过该指定网页的网页链接打开该指定网页;
检索该指定网页中包含该下载指示信息的超链接标签,作为该下载文件的超链接标签。
可选的,该解析该各个网页的网页信息,获取该各个网页的网页信息中包含的下载指示信息,包括:
解析该各个网页的网页信息,通过XPath路径语言获取该各个网页的网页信息中包含的下载指示信息。
可选的,该通过该下载文件的超链接标签,对该下载文件进行下载,包括:
通过对该下载文件的超链接标签进行模拟触发操作,对该下载文件进行下载。
综上所述,本公开实施例中提供的文件下载方法,首先获取各个网页的网页信息,其中,网页信息为对应的网页上显示的文字信息,然后通过各个网页的网页信息,获取包含下载链接的指定网页的网页链接,接着根据指定网页的网页链接,获取指定网页中的下载文件的超链接标签,最后通过下载文件的超链接标签,对下载文件进行下载。通过上述方案,可以通过从网页中直接获取下载文件相关的信息,避免了通过多次身份认证,多次请求服务端提供专用接口获取下载文件相关的信息,简化了文件下载的操作,从而提高了文件下载的稳定性。
图3是根据另一示例性实施例示出的一种文件下载方法的流程图,如图3所示,该文件下载方法可以应用于终端中,通过在终端输入指令在服务器端获取下载文件存入终端中。比如,该终端可以是图1所示的终端120,该服务器可以是图1所示的服务器140。如图3所示,该文件下载方法可以包括以下步骤:
在步骤301中,终端获取各个网页的网页信息。
在本公开实施例中,终端可以根据浏览器内驱动软件(比如,ChromeDriver)的路径信息获取一个网页内驱动软件(WebDriver)的浏览器(browser)实例,然后利用WebDriver的browser实例打开指定网页,获取打开的指定网页的网页信息。
其中,网页信息为对应的网页上显示的文字信息。WebDriver是一种自动化测试工具,可以通过输入指令代码实现网页模拟点击技术,对网页进行操控。
比如,根据ChromeDriver的路径信息获取一个WebDriver的browser实例可以通过在WebDriver中输入以下代码的方式实现:
webdriver.Chrome(executable_path="C:\\Users\\xy\\Desktop\\chromedriver.exe")
其中,ChromeDriver的路径信息为"C:\\Users\\xy\\Desktop\\chromedriver.exe"。在获取到browser实例后,可以通过在WebDriver中输入代码browser.maximize_window()的方式,将该浏览器的窗口进行最大化操作。
可选的,获取网页信息的指定网页可以是一个或者多个,当指定网页为一个时,指定网页的网址可以通过人工输入,或者,当指定网页为多个时,指定网页的网址可以根据一定的规律通过代码的方式进行自动输入。
比如,当指定网页的网址为xxx.n.x.com,可以通过在WebDriver中输入以下的代码方式打开该指定网页:
browser.get("https://xxx.n.x.com/issues/?filter=27256")
可选的,若获取网页信息的指定网页需要用户名和密码才可以访问,则通过在WebDriver中输入代码的方式输入对应的用户名和密码就可以实现该指定网页的登录。
比如,若该指定网页的用户名为XXX,对应的密码为AAA,则可以通过在WebDriver中输入如下所示的代码进行登录:
browser.find_element_by_id("input-username").send_keys("XXX")
browser.find_element_by_id("password").send_keys("AAA")
当在WebDriver中输入对应的用户名和密码之后,用户可以通过接着在WebDriver中输入代码browser.find_element_by_xpath("//*[text()='登录']").click()的方式,对点击登录按钮进行模拟。
在步骤302中,终端通过该各个网页的网页信息,获取包含下载链接的指定网页的网页链接。
在本公开实施例中,各个网页中包括包含下载链接的网页以及不包含下载链接的网页,终端可以从各个网页中获取包含下载链接的网页链接。
可选的,解析该各个网页的网页信息,获取该各个网页的网页信息中包含的下载指示信息。
其中,该下载指示信息是用于指示该下载文件的信息。
比如,若下载文件为一个安装包文件,则其下载指示信息可以是版本号信息或者型号信息等。
可选的,解析该各个网页的网页信息,通过XPath路径语言获取该各个网页的网页信息中包含的下载指示信息。
其中,XPath是使用路径表达式来选取XML(Extensible Markup Language,可扩展标记语言)文档中的节点或节点集的一种路径语言。用户可以通过在WebDriver中输入XPath语言选取各个网页中网页信息中包含的下载指令信息。
比如,若需要获取网页信息中的下载指令信息为版本号信息,则可以通过在WebDriver中输入如下代码,就可以获得网页信息中的版本号信息。
versions=browser.find_elements_by_xpath("//td[@class='versions']")
另外,终端可以通过在WebDriver中输入相应指令代码的方式,获取不只一个网页中的下载指示信息,通过遍历各个网页信息可以获取各个网页信息中的各个下载指示信息。
比如,通过在WebDriver中输入代码for versions_every in versions:print(versions_every.text),可以获取各个网页信息中的版本号信息。
可选的,根据该各个网页的网页信息中包含的下载指示信息,拼接得到该各个指定网页的网页链接。
其中,当获取到各个网页信息中的各个下载指示信息之后,为了获取各个下载指示信息对应的下载文件所在的网页链接,可以通过如下方式获取网页链接:
因为各个网页具有固定的网址,在固定的网址后面添加相应的下载指示信息,就可以得到该下载指示信息对应的文件所在的网页的网址。
比如,若网页的固定网址部分为http://x.p.k.com/le/la?r=,需要下载的文件为安装包文件,该文件对应的下载指示信息为该安装包的版本号信息,版本号信息为V1.0.0.1.ABCD,将网页的固定网址部分与该版本号信息相拼接,可以获得下载该文件对应的网页链接。根据上述内容即可以得到下载该文件的网页链接为http://x.p.k.com/le/la?r=V1.0.0.1.ABCD。
在步骤303中,终端根据该指定网页的网页链接,获取该指定网页中的下载文件的超链接标签。
在本公开实施例中,通过包含需要下载的文件的网页,从中获取该网页中对应该需要下载的文件的超链接标签。
可选的,终端可以通过该指定网页的网页链接打开该指定网页。
其中,通过WebDriver的browser实例可以打开已知网页链接的网页。
比如,当网页链接为http://x.p.k.com/le/la?r=V1.0.0.1.ABCD,通过输入代码:browser.get("http://x.p.k.com/le/la?r=V1.0.0.1.ABCD")即可以打开该网页。
可选的,终端检索该指定网页中包含该下载指示信息的超链接标签,作为该下载文件的超链接标签。
其中,打开该指定网页后,通过输入代码,可以匹配到该下载文件对应的超链接标签,该代码具体如下:
browser.find_elements_by_partial_link_text(“版本号信息”)
在步骤304中,通过该下载文件的超链接标签,终端对该下载文件进行下载。
可选的,通过对该下载文件的超链接标签进行模拟触发操作,对该下载文件进行下载。
其中,通过输入代码browser.find_elements_by_partial_link_text(“版本号信息”)[0].click(),对该版本信息对应的下载文件进行模拟触发操作,进行模拟触发操作的超链接可以对该超链接对应的文件进行下载。
在步骤305中,根据该下载文件的超链接标签,终端获取该下载文件的下载文件名称。
在本公开实施例中,终端通过检索指定网页中包含下载指示信息的超链接标签,作为该下载文件的超链接标签,通过超链接<a></a>标签得到需要下载的文件名称。
其中,通过输入代码browser.find_elements_by_partial_link_text(“版本号信息”)[0].text,可以获取版本号信息对应的下载文件的文件名称。
在步骤306中,终端根据默认下载位置和该下载文件名称确定该下载文件的完成状态。
在本公开实施例中,终端通过查看下载文件所用的浏览器的默认下载位置中是否存在对应文件名称的下载文件,来确定该下载文件的完成状态,其中,完成状态用来指示该下载文件是否下载完成。
可选的,当该默认下载位置存在对应该下载文件名称的文件时,确定该下载文件下载完成,或者,当该默认下载位置不存在对应该下载文件名称的文件时,确定该下载文件下载未完成。
其中,终端设置一个时间阈值,当达到该时间阈值时,终端检索一次浏览器的默认下载位置中是否存在对应文件名称的下载文件,若检索结果为存在对应文件名称的下载文件,则表示该下载文件已经下载完成,若检索结果为不存在对应文件名称的下载文件,则表示该下载文件未下载完成,此时,可以继续等待一个时间阈值终端再此进行检索,直到检索结果为存在对应文件名称的下载文件,即下载文件下载完成。
比如,若设置的时间阈值为10s,则可以通过输入代码:
while not os.path.exists(this_name):
time.sleep(10)
通过上述代码可以执行终端等待10s检测浏览器的默认下载位置中是否存在对应文件名称的下载文件的操作。
可选的,当下载文件下载完成之后,下载文件存储在终端的存储器中,用户对下载文件进行解压、重命名、拷贝或者移动等基本操作。由于在相关技术中,文件下载需要多方配合,相关技术中是通过人工每天定时去查看、保存大量的网页信息(比如:版本号信息),并且人工每天去根据大量的网页信息(比如:版本号信息)手动下载文件。在这种情况下,本申请解决了这一问题,本方案操作简单,可操作性强,大大提高了下载文件的效率。同时,通过程序查看、保存网页信息以及下载文件,相比人工查看、保存网页信息以及下载文件,会更加稳定、可靠,高效。同时也解决了相关技术需要多方配合、操作繁琐、依赖太多的问题。避免了依赖服务端提供的独立接口,避免了通过token、密钥等繁琐的信息来进行认证工作,从而避免了由于token失效而导致的认证失败等问题,从而也避免了出现结果不可控的问题;避免了需要服务端配合研发、维护独立接口的工作量,从而省去了大量的编程、代码更新、代码维护的工作。另外本申请下载文件不需要文件的下载链接,也解决了相关技术的安全性差的问题。
综上所述,本公开实施例中提供的文件下载方法,首先获取各个网页的网页信息,其中,网页信息为对应的网页上显示的文字信息,然后通过各个网页的网页信息,获取包含下载链接的指定网页的网页链接,接着根据指定网页的网页链接,获取指定网页中的下载文件的超链接标签,最后通过下载文件的超链接标签,对下载文件进行下载。通过上述方案,可以通过从网页中直接获取下载文件相关的信息,避免了通过多次身份认证,多次请求服务端提供专用接口获取下载文件相关的信息,简化了文件下载的操作,从而提高了文件下载的稳定性。
图4是根据另一示例性实施例示出的一种文件下载方法流程的示意图,如图4所示,以下载文件为一个安装包文件为例,该文件下载方法的流程如下:
S41终端通过chromedriver的path获取一个WebDriver实例(browser)。实现方式是在WebDriver中输入如下代码:
webdriver.Chrome(executable_path="C:\\Users\\xy\\Desktop\\chromedriver.exe")
S42终端利用WebDriver实例(browser),对浏览器进行最大化浏览器的操作,实现的方式是在WebDriver中输入如下指令代码:
browser.maximize_window()
S43终端利用WebDriver实例(browser)打开指定网页,实现方式是在WebDriver中输入如下代码:
browser.get("https://xxx.n.x.com/issues/?filter=27256")。
S44终端利用WebDriver实例(browser)输入用户名密码,实现方式是在WebDriver中输入如下代码:
browser.find_element_by_id("input-username").send_keys("XXX")
browser.find_element_by_id("password").send_keys("AAA")
S45终端利用WebDriver实例(browser)模拟点击登陆按钮,实现方式是在WebDriver中输入如下代码:
browser.find_element_by_xpath("//*[text()='登录']").click()。
S46终端利用WebDriver实例(browser)通过XPath获取所有需要的版本号信息,实现方式是在WebDriver中输入如下代码:
versions=browser.find_elements_by_xpath("//td[@class='versions']")
S47终端遍历列表,读取每个需要的信息,实现方式是在WebDriver中输入如下代码:
for versions_every in versions:
print(versions_every.text)
S48终端关闭浏览器。实现方式是在WebDriver中输入如下代码:
browser.quit()
S49终端根据得到的网页信息(比如,这里是指版本号信息),拼凑出包含文件下载链接的网页链接;N(N≥1)个网页信息对应N(N≥1)个包含文件下载链接的网页链接;
S410终端利用WebDriver实例(browser)打开指定网页,实现方式是在WebDriver中输入如下指令代码:
browser.get("http://x.p.k.com/le/la?r=V1.0.0.1.ABCD")
S411终端根据得到的网页信息(比如,这里是指版本号信息),匹配到包含文件下载链接的超链接<a></a>标签,根据超链接<a></a>标签得到需要下载的文件的全名,实现方式是在WebDriver中输入如下指令代码:
browser.find_elements_by_partial_link_text(“版本号信息”)[0].text
S412终端根据得到的网页信息(比如,这里是指版本号信息),匹配到包含文件下载链接的超链接<a></a>标签,并点击此超链接标签,实现方式是在WebDriver中输入如下指令代码:
browser.find_elements_by_partial_link_text(“版本号信息”)[0].click()。
S413终端根据浏览器默认的下载位置和需要下载的文件的全名判断文件是否完成下载,如没有完成,等待10秒然后再去判断是否完成下载,实现方式是在WebDriver中输入如下指令代码:
while not os.path.exists(this_name):
time.sleep(10)
S414当文件下载完成之后,可以根据用户的需求对下载完成的文件做些操作,比如:解压,重命名,拷贝,移动等操作。
S415终端关闭浏览器。实现方式是在WebDriver中输入如下指令代码:
browser.quit()
综上所述,本公开实施例中提供的文件下载方法,首先获取各个网页的网页信息,其中,网页信息为对应的网页上显示的文字信息,然后通过各个网页的网页信息,获取包含下载链接的指定网页的网页链接,接着根据指定网页的网页链接,获取指定网页中的下载文件的超链接标签,最后通过下载文件的超链接标签,对下载文件进行下载。通过上述方案,可以通过从网页中直接获取下载文件相关的信息,避免了通过多次身份认证,多次请求服务端提供专用接口获取下载文件相关的信息,简化了文件下载的操作,从而提高了文件下载的稳定性。
图5是根据一示例性实施例示出的一种文件下载装置的框图,如图5所示,该文件下载方法可以应用于终端中,通过在终端输入指令在服务器端获取下载文件存入终端中。比如,该终端可以是图1所示的终端120,该服务器可以是图1所示的服务器140。该装置用于终端中为例。如图5所示,该文件下载装置可以包括:
信息获取模块510,用于获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
网页获取模块520,用于通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
超链接获取模块530,用于根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
文件下载模块540,用于通过所述下载文件的超链接标签,对所述下载文件进行下载。
可选的,所述装置还包括:
名称获取模块,用于通过所述下载文件的超链接,对所述下载文件进行下载之后,根据所述下载文件的超链接标签,获取所述下载文件的下载文件名称;
状态确定模块,用于根据默认下载位置和所述下载文件名称确定所述下载文件的完成状态,所述完成状态用来指示所述下载文件是否下载完成。
可选的,所述状态确定模块,包括:
下载完成子模块,用于当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
下载未完成子模块,用于当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
可选的,所述网页获取模块520,包括:
指示信息获取子模块,用于解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
链接拼接子模块,用于根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
可选的,所述超链接获取模块530,包括:
网页打开子模块,用于通过所述指定网页的网页链接打开所述指定网页;
超链接检索子模块,用于检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
可选的,所述指示信息获取子模块,用于,
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
可选的,所述文件下载模块540,包括:
文件下载子模块,用于通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
需要说明的一点是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开一示例性实施例提供了一种文件下载装置,该文件下载装置可以通过硬件或者软硬结合的方式实现为终端的全部或者部分,能够实现本公开上述图2或图3任一所示实施例中的全部或部分步骤,该文件下载方法可以应用于终端中,其中,通过在终端输入指令在服务器端获取下载文件存入终端中。比如,该终端可以是图1所示的终端120,该服务器可以是图1所示的服务器140。该装置用于终端中为例。该文件下载装置还包括:处理器、用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
通过所述下载文件的超链接标签,对所述下载文件进行下载。
可选的,所述根据所述默认下载位置和所述下载文件名称确定所述下载文件的完成状态,包括:
当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
可选的,所述通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接,包括:
解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
可选的,所述根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签,包括:
通过所述指定网页的网页链接打开所述指定网页;
检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
可选的,所述解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息,包括:
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
可选的,所述通过所述下载文件的超链接标签,对所述下载文件进行下载,包括:
通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
图6是根据一示例性实施例示出的一种终端的结构示意图。所述终端600包括中央处理单元(Central Processing Unit,CPU)601、包括随机存取存储器(Random AccessMemory,RAM)602和只读存储器(Read-Only Memory,ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述终端600还包括帮助终端内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)系统606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
所述基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。所述基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机设备可读介质为终端600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机设备可读介质(未示出)。
不失一般性,所述计算机设备可读介质可以包括计算机设备存储介质和通信介质。计算机设备存储介质包括以用于存储诸如计算机设备可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机设备存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机设备存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本公开的各种实施例,所述终端600还可以通过诸如因特网等网络连接到网络上的远程终端运行。也即终端600可以通过连接在所述系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程终端系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器601通过执行该一个或一个以上程序来实现图2或图3所示的方法的全部或者部分步骤。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本公开实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机设备可读介质中或者作为计算机设备可读介质上的一个或多个指令或代码进行传输。计算机设备可读介质包括计算机设备存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机设备程序的任何介质。存储介质可以是通用或专用服务器能够存取的任何可用介质。
本公开实施例还提供了一种计算机设备存储介质,用于储存为上述测试装置所用的计算机设备软件指令,其包含用于执行上述文件下载方法所设计的程序。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (16)
1.一种文件下载方法,其特征在于,所述方法包括:
获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
通过所述下载文件的超链接标签,对所述下载文件进行下载。
2.根据权利要求1所述的方法,其特征在于,所述通过所述下载文件的超链接,对所述下载文件进行下载之后,还包括:
根据所述下载文件的超链接标签,获取所述下载文件的下载文件名称;
根据默认下载位置和所述下载文件名称确定所述下载文件的完成状态,所述完成状态用来指示所述下载文件是否下载完成。
3.根据权利要求2所述的方法,其特征在于,所述根据所述默认下载位置和所述下载文件名称确定所述下载文件的完成状态,包括:
当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
4.根据权利要求1所述的方法,其特征在于,所述通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接,包括:
解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
5.根据权利要求4所述的方法,其特征在于,所述根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签,包括:
通过所述指定网页的网页链接打开所述指定网页;
检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
6.根据权利要求4所述的方法,其特征在于,所述解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息,包括:
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
7.根据权利要求1所述的方法,其特征在于,所述通过所述下载文件的超链接标签,对所述下载文件进行下载,包括:
通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
8.一种文件下载装置,其特征在于,所述装置包括:
信息获取模块,用于获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
网页获取模块,用于通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
超链接获取模块,用于根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
文件下载模块,用于通过所述下载文件的超链接标签,对所述下载文件进行下载。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
名称获取模块,用于通过所述下载文件的超链接,对所述下载文件进行下载之后,根据所述下载文件的超链接标签,获取所述下载文件的下载文件名称;
状态确定模块,用于根据默认下载位置和所述下载文件名称确定所述下载文件的完成状态,所述完成状态用来指示所述下载文件是否下载完成。
10.根据权利要求9所述的装置,其特征在于,所述状态确定模块,包括:
下载完成子模块,用于当所述默认下载位置存在对应所述下载文件名称的文件时,确定所述下载文件下载完成;
或者,
下载未完成子模块,用于当所述默认下载位置不存在对应所述下载文件名称的文件时,确定所述下载文件下载未完成。
11.根据权利要求8所述的装置,其特征在于,所述网页获取模块,包括:
指示信息获取子模块,用于解析所述各个网页的网页信息,获取所述各个网页的网页信息中包含的下载指示信息;所述下载指示信息是用于指示所述下载文件的信息;
链接拼接子模块,用于根据所述各个网页的网页信息中包含的下载指示信息,拼接得到所述各个指定网页的网页链接。
12.根据权利要求11所述的装置,其特征在于,所述超链接获取模块,包括:
网页打开子模块,用于通过所述指定网页的网页链接打开所述指定网页;
超链接检索子模块,用于检索所述指定网页中包含所述下载指示信息的超链接标签,作为所述下载文件的超链接标签。
13.根据权利要求11所述的装置,其特征在于,所述指示信息获取子模块,用于,
解析所述各个网页的网页信息,通过XPath路径语言获取所述各个网页的网页信息中包含的下载指示信息。
14.根据权利要求8所述的装置,其特征在于,所述文件下载模块,包括:
文件下载子模块,用于通过对所述下载文件的超链接标签进行模拟触发操作,对所述下载文件进行下载。
15.一种文件下载装置,其特征在于,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
获取各个网页的网页信息,所述网页信息为对应的网页上显示的文字信息;
通过所述各个网页的网页信息,获取包含下载链接的指定网页的网页链接;
根据所述指定网页的网页链接,获取所述指定网页中的下载文件的超链接标签;
通过所述下载文件的超链接标签,对所述下载文件进行下载。
16.一种计算机设备可读存储介质,其特征在于,所述计算机设备可读存储介质中包含可执行指令,所述可执行指令由处理器调用执行,以实现上述权利要求1至7任一所述的文件下载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215313.8A CN112989233A (zh) | 2019-12-02 | 2019-12-02 | 文件下载方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215313.8A CN112989233A (zh) | 2019-12-02 | 2019-12-02 | 文件下载方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112989233A true CN112989233A (zh) | 2021-06-18 |
Family
ID=76331507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911215313.8A Pending CN112989233A (zh) | 2019-12-02 | 2019-12-02 | 文件下载方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989233A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154231A (zh) * | 2007-07-09 | 2008-04-02 | 孟智平 | 一种应用网页语义的方法和系统 |
CN102169486A (zh) * | 2010-02-25 | 2011-08-31 | 腾讯科技(深圳)有限公司 | 一种文件下载方法及装置 |
CN103631916A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 一种进行可下载资源下载的方法和装置 |
CN104036011A (zh) * | 2014-06-24 | 2014-09-10 | 北京奇虎科技有限公司 | 网页元素的显示方法以及浏览器装置 |
CN104125268A (zh) * | 2014-06-26 | 2014-10-29 | 小米科技有限责任公司 | 文件下载方法、装置、路由设备及终端设备 |
-
2019
- 2019-12-02 CN CN201911215313.8A patent/CN112989233A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154231A (zh) * | 2007-07-09 | 2008-04-02 | 孟智平 | 一种应用网页语义的方法和系统 |
CN102169486A (zh) * | 2010-02-25 | 2011-08-31 | 腾讯科技(深圳)有限公司 | 一种文件下载方法及装置 |
CN103631916A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 一种进行可下载资源下载的方法和装置 |
CN104036011A (zh) * | 2014-06-24 | 2014-09-10 | 北京奇虎科技有限公司 | 网页元素的显示方法以及浏览器装置 |
CN104125268A (zh) * | 2014-06-26 | 2014-10-29 | 小米科技有限责任公司 | 文件下载方法、装置、路由设备及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6800184B2 (ja) | ドキュメント管理及びコラボレーション・システム | |
CN107925696B (zh) | 用于识别、索引和导航至移动应用的深度状态的系统和方法 | |
Lawson | Web scraping with Python | |
US10102306B2 (en) | Patching base document object model (DOM) with DOM-differentials to generate high fidelity replay of webpage user interactions | |
CN105940654B (zh) | 特权静态被托管的web应用 | |
JP5821678B2 (ja) | ウェブ・アプリケーションのブラウザに依存しない自動互換性チェックのためのウェブ・サービス | |
US9485240B2 (en) | Multi-account login method and apparatus | |
KR101477763B1 (ko) | 원격 모듈용 메시지 목록 | |
US11822637B2 (en) | Adaptive authentication in spreadsheet interface integrated with web service | |
US20140137006A1 (en) | Graphical Overlay Related To Data Mining And Analytics | |
US10089108B1 (en) | Archival format for incremental deployments and version control | |
US20170357486A1 (en) | Enhancing a crowdsourced integrated development environment application | |
US11553035B2 (en) | Cross-platform module for loading across a plurality of device types | |
EP2323034A2 (en) | Information-processing device, communication system, program, and information-processing method | |
US9996381B1 (en) | Live application management workflow using metadata capture | |
US11507655B1 (en) | Automatic and predictive source code generation | |
US9229693B1 (en) | Build service for software development projects | |
US10474444B2 (en) | Method and system for securely updating a website | |
US9497252B2 (en) | On-demand code version switching | |
US20030177202A1 (en) | Method and apparatus for executing an instruction in a web page | |
JP2007264901A (ja) | ソフトウェア管理装置、ソフトウェア管理システム、ソフトウェア管理方法及びソフトウェア管理プログラム | |
CN112685105A (zh) | 前端组件共享方法、装置、计算机设备及存储介质 | |
Gheorghe et al. | Modern techniques of web scraping for data scientists | |
US20160034378A1 (en) | Method and system for testing page link addresses | |
CN112989233A (zh) | 文件下载方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |