首页 > 其他分享 >数据采集与融合技术实验四

数据采集与融合技术实验四

时间:2023-11-04 15:35:19浏览次数:26  
标签:text driver 融合 采集 html 实验 ls div data

作业①:

  • 要求:使用 Selenium 框架+ MySQL 数据库存储技术路线爬取“沪深 A 股”、“上证 A 股”、“深证 A 股”3 个板块的股票数据信息。

  • 主要代码

url_list = ['http://quote.eastmoney.com/center/gridlist.html#hs_a_board','http://quote.eastmoney.com/center/gridlist.html#sh_a_board','http://quote.eastmoney.com/center/gridlist.html#sz_a_board']
con,cursor = openDB()
j = 0
for i in url_list:
    driver = webdriver.Chrome()  # 创建driver对象
    driver.get(i)
    time.sleep(10)
    driver.maximize_window()
    html = driver.page_source
    soup = BeautifulSoup(html, "lxml")
    imagelist = []
    lis = soup.select('table[class="table_wrapper-table"] tr')
    x = 1
    for ls in lis:
        j += 1
        if x != 1:
            data = ls.select('td')
            insert(cursor,str(j), data[1].text, data[2].text, data[4].text, data[5].text, data[6].text, data[7].text,
                  data[8].text, data[9].text, data[10].text, data[11].text, data[12].text, data[13].text)
            # print(data[0].text, data[1].text, data[2].text, data[4].text, data[5].text, data[6].text, data[7].text,
            #       data[8].text, data[9].text, data[10].text, data[11].text, data[12].text, data[13].text)
        else:
            # 排除表头
            x += 1
    driver.close()
show(cursor)
closeDB(con)
  • 输出信息:

  • Gitee文件夹链接
    题一

  • 心得体会
    对于不同的板块可以使用js的点击模块,也可以直接添加入网址列表。

作业②

  • 要求:使用 Selenium 框架+MySQL 爬取中国 mooc 网课程资源信息(课程号、课程名
    称、学校名称、主讲教师、团队成员、参加人数、课程进度、课程简介)

  • 主要代码

suser = '***'
spassword = '***'
con,cursor = openDB()
driver = webdriver.Chrome()  # 创建driver对象
driver.get('https://www.icourse163.org/')
driver.maximize_window()
time.sleep(5)

inputs = driver.find_element(By.CSS_SELECTOR, 'div[class=_1Y4Ni] div[class="_3uWA6"]')
inputs.click()
frame = driver.find_element(By.XPATH,'/html/body/div[13]/div[2]/div/div/div/div/div/div[1]/div/div[1]/div[2]/div[2]/div[1]/div/iframe')
driver.switch_to.frame(frame)
time.sleep(5)
user = driver.find_element(By.ID, 'phoneipt')
user.send_keys(suser)
password = driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[2]/form/div/div[4]/div[2]/input[2]')
password.send_keys(spassword)

doit =  driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[2]/form/div/div[6]/a')
doit.click()
time.sleep(3)
driver.switch_to.default_content()

name = driver.find_element(By.XPATH, '/html/body/div[4]/div[1]/div/div/div/div/div[7]/div[1]/div/div/div[1]/div/div/div/div/div/div/input')
name.send_keys("计算机网络")
time.sleep(3)
searchbutton = driver.find_element(By.CSS_SELECTOR, ".j-searchBtn")
searchbutton.click()
time.sleep(2)
con,cursor = openDB()
j = 0
html = driver.page_source
se = Selector(text=html)
lists = se.xpath('/html/body/div[4]/div[2]/div[2]/div[2]/div/div[6]/div[2]/div[1]/div/div/div')
for ls in lists:
    j += 1
    courname = "".join(ls.xpath('./div[2]/div/div/div[1]/a[1]//span/text()').extract())
    schoolname = ls.xpath('./div[2]/div/div/div[2]/a[1]/text()').extract_first()
    teachername = "".join(ls.xpath('./div[2]/div/div/div[2]/a[2]/text()').extract())
    teamname = "、".join(ls.xpath('./div[2]/div/div/div[2]/span//a/text()').extract())
    number = ls.xpath('./div[2]/div/div/div[3]/span[2]/text()').extract_first()
    process = ls.xpath('./div[2]/div/div/div[3]/div/span[2]/text()').extract_first()
    intro = "".join( ls.xpath('./div[2]/div/div/a/span/text()').extract())
    insert(cursor, str(j),courname,schoolname,teachername,teamname,number,process,intro)
    print(j,courname,schoolname,teachername,teamname,number,process,intro)
driver.close()
show(cursor)
closeDB(con)
  • 输出信息

  • Gitee文件夹链接
    题二

  • 心得体会
    对于有iframm的弹窗页面,需要转入该弹窗,不然无法定位该弹窗,也无法设置数据

作业③:

  • 要求:掌握大数据相关服务,熟悉 Xshell 的使用
    完成文档 华为云_大数据实时分析处理实验手册-Flume 日志采集实验(部
    分)v2.docx 中的任务。

  • 环境搭建:

    • 任务一:开通 MapReduce 服务
  • 实时分析开发实战:

    • 任务一:Python 脚本生成测试数据

    • 任务二:配置 Kafka

    • 任务三: 安装 Flume 客户端

    • 任务四:配置 Flume 采集数据

  • 心得体会
    1.对于服务器,数据的安全十分重要,注意要使用较多的防护手段
    2.在对服务器flume,kafka进行配置时,要注意使用自己申请的ip,才能访问到数据。

标签:text,driver,融合,采集,html,实验,ls,div,data
From: https://www.cnblogs.com/CokeChen/p/17809390.html

相关文章

  • 实验3 C语言函数应用编程
    任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn......
  • 造纸机数据采集远程监控物联网解决方案
    自动造纸机是纸张加工工业中应用最广泛的一种机器,它通过将原纸在水中进行浸泡、表面涂布、压榨、干燥等工序制成纸浆,再将纸浆进行成型、压光等工序,最终形成成品纸的机器,具备生产效率高、产品质量好、操作便捷等优点。 为实现多台设备的集中监控管理,物通博联提供基于工业智能网关的......
  • 实验3 类与数组、指针
    实验任务1Point.hpp1#pragmaonce23#include<iostream>4usingstd::cout;5usingstd::endl;67classPoint{8public:9Point(intx0=0,inty0=0);10~Point()=default;1112intget_x()const;13intget_y()co......
  • 实验三
    test1#include<stdio.h>#include<time.h>#include<stdlib.h>#include<windows.h>#defineN80voidtest_(intline,intcol,chartest[]);voidspace(intn);voidblank(intn);intmain(){intline,col,i;chartest[N]=&......
  • 四个代码融合 依次:小青蛙上台阶 ;求阶乘;求最大公因数;地盘划分(均为递归算法)
    小壁灯上楼梯#include<iostream>usingnamespacestd;inta(intc){if(c<=2){returnc;}else{returna(c-1)+(c-2);}}intmain(intargc,char**argv){intc,k;cin>>c;cout<<a(c);return0;}......
  • filebeat采集日志存在日志丢失的情况
    filebeat搜集的速度跟不上日志打印的速度问题:filebeat读取k8scontainer日志,生产到kafka过程中,出现丢数据。如下图实际生产了1w+日志,但只生产了5746条 定位:因为是EFK流程,首先,需要确定是生产还是消费出现了问题,直接kafka命令行使用另外的消费组消费同一topic的kafka数据,得出的......
  • EthernetIP主站转EtherCAT协议网关采集电力变压器的 Ethernet IP 数据
    怎么通过捷米JM-EIPM-ECT网关把ABB电力变压器的EthernetIP数据,连接到欧姆龙PLC上,通过plc去监控电力设备的数据呢,下面是介绍简单的连接方法,采集EthernetIP从站数据和EtherCAT协议1,捷米JM-EIPM-ECT网关连接EthernetIP从站首先,我们需要知道每个,,点位的地址和数据类型,然后填写到......
  • EthernetIP主站转EtherCAT协议网关采集电力变压器的 Ethernet IP 数据
    EthernetIP主站转EtherCAT协议网关采集电力变压器的EthernetIP数据  怎么通过捷米JM-EIPM-ECT网关把ABB电力变压器的EthernetIP数据,连接到欧姆龙PLC上,通过plc去监控电力设备的数据呢,下面是介绍简单的连接方法,采集EthernetIP从站数据和EtherCAT协议1,......
  • 实验三
     ......
  • 软件设计实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;  2......