DIPRE算法实现

本文详细介绍了DIPRE算法的实现过程,包括插入和获取网页数据、插入和获取初始种子、在网页数据中搜索种子并记录成事件、根据事件形成模式、利用模式搜索并存储新的元组。通过实例展示了如何利用真实网站作为数据源测试代码,验证了算法的有效性。
摘要由CSDN通过智能技术生成

1、插入并获取网页数据

        为了对已经写好的代码进行测试,我们先使用测试数据来看流程是否通过,假设对于一个网站有以下两个页面,且页面中含有一些内容(将这两个网页存在本地服务器下):

URL:http://localhost/DIPRE/BestSeller.html

URL:http://localhost/DIPRE/TopRated.html

        首先我们将这两个URL存入数据库里的webpage表中(但注意为了模式的特异性,形成模式时要先去掉http://或https://的开头,后面会再提到),然后利用python先从数据库中获取所有webpage表中的字段(这里就一个字符串字段:url),再利用爬虫获取到这所有url中body的内容作为我们的源数据:

import requests
from bs4 import BeautifulSoup
def CrawlWeb(path): #  利用爬虫获取URL中body的内容:
    html = requests.get(path)
    soup = BeautifulSoup(html.text)
    body = soup.body
    return str(body) # 这里一定要注意转化成字符串,不然返回的是soup对象
def GetData(): # 获取数据库中的数据,以列表—字典的形式返回
    cursor = db.cursor()
    sql = "select * from webpage"
    data = []
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        for row in results:
            each = {}
            each['id'] = row[0]
            each['text'] = CrawlWeb(row[1])
            each['url'] = row[1].lstrip('http://').lstrip('https://') # 截取掉http后获取URL
            data.append(each)
    except:
        db.rollback()
    cursor.close()
    return data
data = GetData()
data

2、插入并获取初始种子

        我们有了源数据之后,需要手动输入一些种子,在这个测试用例中至少需要来自同一个页面的两个种子才能形成一个模式,我们选择(Ernest Miller Hemingway,The Old Man and the Sea)和(W. William Shakespeare,A Midsummer Night's Dream)这两个元组对,因为这两个元组在BestSeller.html同时存在,方便我们形成模式。

        由此在数据库中创建seeds表,加入author和title两个字段,并存入以上两个元组对,同时利用python获取seeds表中的数据:

def GetSeeds():
    cursor = db.cursor()
    sql = "select * from seeds"
    seeds = []
    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        for row in results:
            each = {}
            each['id'] = row[0]
            each['author'] = row[1]
            each['title'] = row[2]
            seeds.append(each)
    except:
        db.rollback()
    cursor.close()
    return seeds
seeds = GetSeeds()
seeds

3、在网页数据中搜索种子并记录成事件

        获取到seeds数据后,我们先写个记录事件的函数,用以记录一个种子在一个页面中出现的事件结构:

def SearchSeedInPage(author,title,url,line): # 在文章中搜索一个种子的元组对并记录事件
    occurrence = {}
    if author in line and title in line: # 作者和标题都在该行则记录事件,需要先判定是作者在前还是标题在前
        posA = line.index(author)
        posT = line.index(title)
        if(posA<posT): # 如果作者在前则为1,否则为0
            order = 1
            if posA-CONST_M>=0:
                prefix = line[posA-CONST_M:posA] # 记录author前m个字符作为前缀
            else:
                prefix = line[:posA] # 如果前m个字符超出下界则m记为0
            middle = line[posA+len(author):posT]
            suffix = line[posT+len(title):posT+len(title)+CONST_M] # 记录title后m个字符作为后缀,后界不用if,因为默认超出len按len计算
        else:
            order = 0
            if posT-CONST_M>=0:
                prefix = line[posT-CONST_M:posT]
            else:
                prefix = line[:posT]
            middle
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ctly to a server means uploading the application files and configuring the server to run the application. 直接部署Web应用程序到服务器意味着上传应用程序文件并配置服务器以运行应用程序。 ### 回答2: Web应用的部署是为使其在服务器上运行而将应用程序文件和其他资源文件放置在适当位置的过程。部署通常包括以下步骤: 1.选择合适的服务器:根据您的需求选择最适合的服务器,例如:云服务器、共享服务器等。 2.安装必要的Web服务器:部署Web应用程序的第一步是确保您在服务器上安装了Web服务器。Web服务器承担着从客户端(浏览器)请求和返回响应的任务。例如:Apache、IIS 、nginx等Web服务器 3.获取Web应用程序文件:可以从本地系统或远程服务器获取Web应用程序资源文件,确保它们都在同一个目录下。 4.设置Web应用程序:为了使Web应用程序正确地运行,您需要编辑Web应用程序的配置文件。这可能包括更新数据库连接信息,设置虚拟主机等。 5.创建数据库:如果Web应用程序需要与数据库交互,那么您需要在服务器上创建相应的数据库并设置相应的授权。 6.部署应用程序:最后将Web应用程序资源文件部署到服务器上的相应目录下,并启动Web服务器,在浏览器中使用URL路径来访问Web应用程序即可。 最后,您需要测试应用程序以确保它在服务器上正常工作。如果测试成功,您可以通过设置DNS等配置将Web应用程序运行在公网上。部署Web应用程序要求小心谨慎,因为任何错误都可能导致应用程序的故障。因此,建议在部署之前使用沙箱进行测试来确保安全性和可靠性。 ### 回答3: Web应用程序是一种常见的应用程序类型,用户可以通过互联网访问该应用程序。部署Web应用程序需要许多步骤,以下是一些关键步骤: 首先,需要选择一个可靠的Web服务器。常见的Web服务器包括Apache、IIS和Nginx等。选择服务器应该基于应用程序的具体需求和限制,例如运行平台、安全性和性能等方面。 接下来,需要准备服务器环境。这通常包括安装操作系统、网络协议和所选Web服务器,并确保服务器安全性以及常见的安全更新已安装。 然后,需要将Web应用程序代码上传到服务器。这通常通过FTP或SSH等传输协议进行。如果应用程序使用数据库,还需要安装和配置数据库服务器。 接下来,需要配置Web服务器以正确地显示应用程序。这包括配置服务器以显示正确的Web页面、启用应用程序所需的设置和插件,并处理程序的请求和响应。 最后,需要对应用程序进行测试。这可以帮助发现任何错误或漏洞,并确保应用程序与所选的服务器和配置兼容。测试可能包括单元测试、端到端测试和负载测试。 总之,部署Web应用程序需要许多步骤和技能。但是,通过按照这些步骤进行,可以确保应用程序在Web上成功部署并安全运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值