网络数据采集实验报告(供参考)

实验一:网络数据采集实验

一,实验目的

网络爬虫系统的功能是下载网页数据,为搜索引擎系统或需要网络数据的企业提供数据来源。本章内容介绍了网络爬虫程序的编写方法,主要包括如何请求网页以及如何解析网页。在网页请求环节,需要注意的是,一些网站设置了反爬机制,会导致我们爬取网页失败。在网页解析环节,我们可以灵活运用BeautifulSoup提供的各种方法获取我们需要的数据。同时,为了减少程序开发工作量,可以选择包括Scrapy在内的一些网络爬虫开发框架编写网络网络爬虫程序。

二,实验要求

1.1 采集网页数据保存到文本文件

访问古诗文网站(https://so.gushiwen.org/mingju/),会显示如图3-5所示的页面,里面包含了很多名句,点击某一个名句(比如“山有木兮木有枝,心悦君兮君不知”),就会出现完整的古诗(如图3-6所示)

1.2 采集网页数据保存到MySQL数据库

编写网络爬虫程序,读取网页内容进行解析,并把解析后的数据保存到MySQL数据库中,

1.3 XPath语言

了解Xpath的基本术语及语法

三,实验步骤

1.1 采集网页数据保存到文本文件

下面编写网络爬虫程序,爬取名句页面的内容,保存到一个文本文件中,然后,再爬取每个名句的完整古诗页面,把完整古诗保存到一个文本文件中。可以打开一个浏览器,访问要爬取的网页,然后在浏览器中查看网页源代码,找到诗句内容所在的位置,总结出它们共同的特征,就可以将它们全部提取出来了。

import requests
from bs4 import BeautifulSoup
import time
#函数1:请求网页
def page_request(url,ua):
    response = requests.get(url,headers = ua)
    html = response.content.decode('utf-8')
    return html
  #函数2:解析网页
def page_parse(html):
     soup = BeautifulSoup(html,'html.parser')
     title = soup('title')
     sentence = soup.select('div.left > div.sons > div.cont > a:nth-of-type(1)')
     poet = soup.select('div.left > div.sons > div.cont > a:nth-of-type(2)')
     sentence_list=[]
     href_list=[]
     for i in range(len(sentence)):
        temp = sentence[i].get_text()+ "---"+poet[i].get_text()
        sentence_list.append(temp)
        href = sentence[i].get('href')
        href_list.append("https://so.gushiwen.org"+href)
        return [href_list,sentence_list]
#函数3:写入文本文件
def save_txt(info_list):
    import json
    with open(r'D:\\sentence.txt','a',encoding='utf-8') as txt_file:
      for element in info_list[1]:
        txt_file.write(json.dumps(element,ensure_ascii=False)+'\n\n')
#子网页处理函数:进入并解析子网页/请求子网页
def sub_page_request(info_list):
    subpage_urls = info_list[0]
    ua = {

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Labiew的数据采集实验报告 实验目的 通过软件Labiew编写前面板和程序框图,将外部信号接于数据采集卡的模拟输入0号 通道,外部信号由单片机和AD9850组成的信号发生器发出。当在Labview环境下运行程序 时,信号发生器所发出的信号显示在面板上。仪器面板如下图所示。 实验器材 PC机一台,单片机开发箱,信号发生器,数据采集卡,示波器,Labiew软件,220V交 流电源,导线若干等。 实验原理 数据采集(DAQ)是指从系统外部采集数据并进行转换后传输到系统内部的过程,能 够提这一功能的完整系统被称为数据采集系统(Data Acquisition System)。 显示波形的原理框图如下: 在上图所示的框图中,计算机对采集卡发出指令,启动采集卡,计算机将采集的信号 数据进行存储、处理和显示,从而将波形显示在面板上。 采集卡将被测信号转为离散的数字信号,并保存在计算机的数组中,计算机通过Lab iew软件将保存在数组中的离散数字信号显示在图形控件中。 Labview数据采集 在Labview中提了很多关于数据采集的相关的VI,利用这些VI可以创建相关的要求 的数据采集系统,下图是程序框图的测量I/O中的DAQ子模板界面图。 下面介绍几个主要的数据采集的VI。 DAQmx创建通道 模拟输入初始化,给其分配一个任务ID。 DAQmx开始任务 模拟输入开始,将数据暂存在数据采集卡的缓存中。 DAQmx读取 模拟输入读数,从数据采集卡的缓存中读至计算机中。 DAQmx定时 采集时的一些参数设置。 DAQmx清楚任务 模拟输入清楚任务。 这几个VI的详细端子图如下所示: 我们采用带缓冲的模拟输入,即数据先从DAQ设备传到缓冲中,然后由DAQmxRead.VI 读取到应用程序内存中。这种输入又分为有限多点采集和连续采集。在设定缓冲大小时 ,如果使用缺省值或设为-1,则NI- DAQmx根据任务的配置,自动确定读取的采样点数,如果通过控件来输入我们的缓冲大小 ,则每通道的采样点数(Samples per channel)等于缓冲大小。 带缓冲的连续采集的程序流程程序如下: 3.模拟信号的一般采集过程 数据采集需要注意的问题 采样频率不能太低,采样频率太低会发生混叠现象,一旦发生混叠现象,就无法重构 原始信号。根据采样定理,采样频率至少是输入信号的最大频率的2倍,在工程应用中, 为了能够准确重构波形,采样频率一般是输入信号的5—10倍。 实验步骤 打开桌面上的Labview,新建一个VI,此时我们可以看到前面板和程序框图的界面。 在程序框图中添加DAQmxVI创建通道,按照该VI的各端口的含义创建输入控件,设定物理 通道、最大值、最小值等参数,然后将创建的控件和该VI用相应的数据线连接起来。 在程序框图中添加DAQmx定时VI,按照该VI的各端口的含义创建输入控件,设定采样率、 采样模式等参数,然后将创建的控件和该VI用相应的数据线连接起来。 在程序框图中添加DAQmx开始任务VI,将以上三个VI的输入输出端口连接起来,这就组成 了可以采集数据了,然后再添加读取数据的VI。 在程序框图中添加DAQmx读取VI,并创建波形输出显示控件,可以显示采集到得两路信号 的波形,同时添加一个信号拆分控件,将两路信号分别用输出控件显示,而且将信号引 入到运算中。 按照我们的计算公式,在程序框图中添加相应的运算符号和运算函数,最将数值显示在 数值显示控件中。如下图所示。 在程序框图中添加while循环结构,将读取VI和运算程序放在循环中,并创建一个停止按 钮,作为while循环的退出条件。 在程序框图中添加DAQmx清楚任务VI和错误处理的VI,连接好相对应的数据线。完成后的 程序框图如下图所示。 8.保存前面板的面板图和后面板的程序框图。 9.调试程序。 实验结果 当从信号发生器中发出一定频率的正弦信号时,运行我们编辑好的程序,在图表控件 上将会显示出波形。显示的结果如下图所示。  ----------------------- 数据采集实验报告全文共6页,当前为第1页。 采集卡 计算机 Labiew软件 信号 数据采集实验报告全文共6页,当前为第2页。 参数设置 采集数据 从缓存中返回数据 完成? 停止采集 显示错误 是 否 开始 数据采集实验报告全文共6页,当前为第3页。 计算机总线 Labiew 计算机 多路开关 数据采集卡 通道1 通道8 A/D 缓存 数据 信号 信号 数据采集实验报告全文共6页,当前为第4页。 数据采集实验报告全文共6页,当前为第5页。 数据采集实验报告全文共6页,当前为第6页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值