数据采集第五次大作业

作业①

  • 要求:
    熟练掌握 Selenium 查找HTML元素、爬取Ajax网页数据、等待HTML元素等内容。
    使用Selenium框架爬取京东商城某类商品信息及图片。
    候选网站:http://www.jd.com/
  • 关键词:学生自由选择
  • 输出信息:MYSQL的输出信息如下

作业一代码链接:https://gitee.com/chenshuooooo/data-acquisition/blob/master/作业5/作业1使用selenium爬取京东.py

实现过程

  • 1.设置浏览器
 chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
  • 2.爬取需要的信息
goodlist=driver.find_elements_by_xpath('//div[@id="J_goodsList"]/ul/li[@class="gl-item"]')
for i in goodlist:
    price = i.find_elements_by_xpath(".//div/div[@class='p-price']/strong/i")
    name = i.find_elements_by_xpath(".//div/div[@class='p-name p-name-type-2']/a/em")
    img = i.find_elements_by_xpath(".//div/div[@class='p-img']/a/img")
    note = i.find_elements_by_xpath(".//div/div[@class='p-name p-name-type-2']")
  • 3.连接数据库并创建表
connect = pymssql.connect(host='localhost', user='chenshuo', password='cs031904104',
                          database='cs031904104', charset='UTF-8')  # 连接到sql server数据库
cur = connect.cursor()  # 创建操作游标
cur.execute("drop table scraf")
cur.execute(
    "create table scraf"
    " (mNo char(1000),mMark char(1000),mPrice char(1000),mNote char(1000),mFile char(1000) )")
cur = connect.cursor()  # 创建操作游标
  • 4.插入数据库
    cur.execute(
        "insert into scraf (mNo ,mMark ,mPrice ,mNote ,mFile  ) values ('%s','%s','%s','%s','%s')" % (
        str(num+1), name[0].text.replace("'"," ").replace("\n"," "), price[0].text.replace("'"," ").replace("\n"," "), note[0].text.replace("'"," ").replace("\n"," "), img[0].get_attribute('src')))
  • 5.结果展示

心得体会

  • 能够熟练使用selenum进行数据的爬取,复习了sql server数据库的相关操作。

作业②

  • 要求:
    熟练掌握 Selenium 查找HTML元素、实现用户模拟登录、爬取Ajax网页数据、等待HTML元素等内容。
    使用Selenium框架+MySQL模拟登录慕课网,并获取学生自己账户中已学课程的信息保存到MySQL中(课程号、课程名称、授课单位、教学进度、课程状态,课程图片地址),同时存储图片到本地项目根目录下的imgs文件夹中,图片的名称用课程名来存储。

  • 候选网站:中国mooc网:https://www.icourse163.org

  • 输出信息:MYSQL数据库存储和输出格式

代码链接:https://gitee.com/chenshuooooo/data-acquisition/blob/master/作业5/作业2.py

实现过程

  • 1.登入功能的实现
    这部分通过模拟学习舍友的代码完成
    (1)首先分析如何登入,点击登入按钮,然后点击其他登入方式
        go=driver.find_elements_by_xpath("//div[@class='_3uWA6']")[0]
        go.click()
        ##点击其他方式登录
        go1=driver.find_elements_by_xpath("//div[@class='mooc-login-set-wrapper']/div[@class='mooc-login-set']/div[@class='ux-login-set-scan-code f-pr']/div[@class='ux-login-set-scan-code_ft']/span[@class='ux-login-set-scan-code_ft_back']")[0]
        go1.click()

(2)点击手机号登入,输入手机号和密码

        ##点击手机号登录
        go2=driver.find_elements_by_xpath("//div[@class='mooc-login-set-wrapper']/div[@class='mooc-login-set']/div[@class='ux-login-set-login-set-panel']/div[@class='login-set-panel']/div[@class='login-set-panel-login']/div[@class='ux-urs-login-urs-tab-login f-pr']/div[@class='ux-urs-login-urs-tabs']/div[@class='ux-tabs-underline']/ul[@class='ux-tabs-underline_hd']/li[2]")[0]
        go2.click()
        wait.until(
            EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//div[@class='ux-login-set-container']/iframe"))
        )
        ##找到账号输入框,输入账号
        loginname=driver.find_elements_by_xpath("//input[@type='tel']")[0]
        loginname.send_keys('15205916160')
        time.sleep(1)
        ##找到密码输入框,输入密码
        password = driver.find_elements_by_xpath("//input[@type='password']")[1]
        password.send_keys('cs031904104')

(3)登入成功后,这里可以忽略弹窗信息直接点击个人中心,进入要爬取的页面

        go3 = driver.find_elements_by_xpath("//a[@target='_top']/span[@class='nav']")[2]
        go3.click()
        ##等待页面内容加载
        time.sleep(3)
  • 2.爬取需要的信息
        list=driver.find_elements_by_xpath("//div[@id='g-container']/div[@id='g-body']/div[@id='j-home-content']/div[@class='main-content f-cb']/div[@class='main-box f-fl']/div[@id='j-module-box']/div/div[@class='g-flow f-cb']/div[@class='g-mn2']/div[@class='g-mn2c']/div[@class='m-mcdoc']/div[@id='j-cnt1']/div[@id='j-coursewrap']/div[@class='course-panel-wrapper']/div[@class='course-panel-body-wrapper']/div[@class='course-card-wrapper']")
        for i in list:
            name= i.find_elements_by_xpath("./div[@class='box']/a[@class='ga-click']/div[@class='body']/div[@class='common-info-wrapper common-info-wrapper-fix-height']/div[@class='title']/div[@class='text']/span[@class='text']")[0]
            school=i.find_elements_by_xpath("./div[@class='box']/a[@class='ga-click']/div[@class='body']/div[@class='common-info-wrapper common-info-wrapper-fix-height']/div[@class='school']/a")[0]
            learn=i.find_elements_by_xpath("./div[@class='box']/a[@class='ga-click']/div[@class='body']/div[@class='personal-info']/div[@class='course-progress']/div[@class='status']/div[@class='text']/a/span[@class='course-progress-text-span']")[0]
            status=i.find_elements_by_xpath("./div[@class='box']/a[@class='ga-click']/div[@class='body']/div[@class='personal-info']/div[@class='course-status']")[0]
            url=i.find_elements_by_xpath("./div[@class='box']/a")[0]
  • 3.数据库相关操作
connect = pymssql.connect(host='localhost', user='chenshuo', password='cs031904104',
                          database='cs031904104', charset='UTF-8')  # 连接到sql server数据库
cur = connect.cursor()  # 创建操作游标
cur.execute(
    "create table mooc"
    " (bCourse char(1000),bCollege char(1000),bSchedule char(1000),bCourseStatus char(1000),bImgUrl char(1000) )")

cur = connect.cursor()  # 创建操作游标
connect.commit()  # 提交命令
            cur.execute(
                "insert into mooc (bCourse,bCollege ,bSchedule ,bCourseStatus ,bImgUrl  )values ('%s','%s','%s','%s','%s')" % (
                    name.text, school.text.replace("'", " ").replace("\n", " "),
                    learn.text.replace("'", " ").replace("\n", " "),
                    status.text.replace("'", " ").replace("\n", " "), status.text,url.get_attribute('href')))
  • 4.结果展示

心得体会

  • 通过学习并理解同学的代码,了解学习掌握了使用selenium的登入操作。

作业③

  • 要求:掌握大数据相关服务,熟悉Xshell的使用
  • 完成文档 华为云_大数据实时分析处理实验手册-Flume日志采集实验(部分)v2.docx 中的任务,即为下面5个任务,具体操作见文档。-
  • 环境搭建
    任务一:开通MapReduce服务
    实时分析开发实战:
    任务二:Python脚本生成测试数据
    任务三:配置Kafka
    任务四:安装Flume客户端
    任务五:配置Flume采集数据

实现过程

  • (1)任务一:开通MapReduce服务

  • (2)任务二:Python脚本生成测试数据

  • (3)任务三:配置Kafka

  • (4)任务四:安装Flume客户端

  • 步骤一:下载Flume客户端

  • 步骤二:解压下载的客户端文件

  • 步骤三:校验文件包,校验成功

  • 步骤四:解压“MRS_Flume_ClientConfig.tar”文件

  • 步骤五:安装Flume环境变量
    客户端运行环境安装成功

    配置环境变量

  • 步骤六:解压Flume客户端

  • 步骤七:安装Flume客户端

  • 步骤八:重启Flume服务

  • (5)任务五:配置Flume采集数据

  • (6)最后进行云资源的释放

心得体会

  • 学习相关华为云平台的操作,了解了Flume日志采集服务,学习了xshell7以及xftp7的用法。
posted @ 2021-12-07 21:42  haizaizuiying  阅读(61)  评论(0编辑  收藏  举报