数据采集第五次大作业

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

mNo mMark mPrice mNote mFile
000001 三星Galaxy 9199.00 三星Galaxy Note20 Ultra 5G... 000001.jpg
000002......
解题步骤(本题为代码复现)
本题主要需要注意的是处理爬取时的特殊情况
 try:
                    note = li.find_element_by_xpath(".//div[@class='p-name p-name-type-2']//em").text
                    mark = note.split(" ")[0]
                    mark = mark.replace("爱心东东\n", "")
                    mark = mark.replace(",", "")
                    note = note.replace("爱心东东\n", "")
                    note = note.replace(",", "")

                except:
                    note = ""
                    mark = ""

有时会出现一些无关文本,需要替换或去除

  • 运行结果:
    1)终端结果

    2)数据库结果

    3)文件夹图片保存结果
  • 实验心得
    1)熟悉selenium爬取并存取数据库和下载图片
    2)强化了处理一些特殊文本的意识
    代码地址:https://gitee.com/zhubeier/zhebeier/blob/master/第五次大作业/第一题
    作业②:
    要求:
    熟练掌握 Selenium 查找HTML元素、实现用户模拟登录、爬取Ajax网页数据、等待HTML元素等内容。
    使用Selenium框架+MySQL模拟登录慕课网,并获取学生自己账户中已学课程的信息保存到MySQL中(课程号、课程名称、授课单位、教学进度、课程状态,课程图片地址),同时存储图片到本地项目根目录下的imgs文件夹中,图片的名称用课程名来存储。
    候选网站:中国mooc网:https://www.icourse163.org
    输出信息:MYSQL数据库存储和输出格式
    ​ 表头应是英文命名例如:课程号ID,课程名称:cCourse……,由同学们自行定义设计表头:
Id cCourse cCollege cSchedule cCourseStatus cImgUrl
1 Python网络爬虫与信息提取 北京理工大学 已学3/18课时 2021年5月18日已结束 http://edu-image.nosdn.127.net/C0AB6FA791150F0DFC0946B9A01C8CB2.jpg
2......

解题步骤:
STEP1 在mysql建立mooc数据库以及表MC,然后建立数据库连接

STEP2 模拟chrome浏览器登录Mooc

driver = webdriver.Chrome()
driver.get('https://www.icourse163.org')
driver.maximize_window()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[3]/div[3]/div').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@class="zcnt"]/div/div/div/div/div[2]/span').click()
driver.find_element_by_xpath('//*[@class="mooc-login-set"]/div/div/div[1]/div/div[1]/div[1]/ul/li[2]').click()
time.sleep(1)
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[1])#登录界面是一个嵌套在html里的另一个html文件,必须要切换
idinput = driver.find_element_by_xpath('//*[@id="phoneipt"]').send_keys("18133010322")
time.sleep(1)
passwdinput = driver.find_element_by_xpath('//*[@class="j-inputtext dlemail"]')
passwdinput.send_keys("Zbenotfound404")
time.sleep(1)
driver.find_element_by_xpath('//*[@id="submitBtn"]').click()
time.sleep(3)

STEP3 进入“我的课程”页面,找到对应属性的xpath路径,开始爬取

driver.find_element_by_xpath('//*[@id="privacy-ok"]').click()
driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[3]/div[4]/div').click()
cCourse_list = driver.find_elements_by_xpath('//*[@class="course-card-wrapper"]/div/a/div[@class="img"]/img')
cCollege_list = driver.find_elements_by_xpath('//*[@class="course-card-wrapper"]/div/a/div[@class="body"]/div[1]/div[@class="school"]/a')
cSchedule_list = driver.find_elements_by_xpath('//div[@class="course-card-wrapper"]//div[@class="box"]//div[@class="body"]//div[@class="text"]//a/span')
cCourseStatus_list = driver.find_elements_by_xpath('//*[@class="course-card-wrapper"]/div/a/div[@class="body"]/div[2]/div[@class="course-status"]')
img_url = driver.find_elements_by_xpath('//*[@class="course-card-wrapper"]/div/a/div[@class="img"]/img')
for i in range(len(cCourse_list)):
    cCourse = cCourse_list[i].get_attribute('alt')
    cCollege = cCollege_list[i].text
    cSchedule = cSchedule_list[i].text
    #print(cSchedule)
    cCourseStatus = cCourseStatus_list[i].text
    clmgUrl = img_url[i].get_attribute('src')
    print(cCourse+"\t"+cCollege+"\t"+cSchedule+"\t"+cCourseStatus+'\t'+clmgUrl+'\t')
    cursor.execute("insert into mc values (%s,%s,%s,%s,%s,%s)",(i+1,cCourse,cCollege,cSchedule,cCourseStatus,clmgUrl))
    db.commit()

运行结果:
1)终端结果:

2)数据库结果:

3)图片保存结果:

  • 实验心得:
    1)selenium是模拟用户操作网页,比较直观,容易理解。更加熟悉了selenium点击->定位->爬取的过程
    2)了解了登录界面有一个“iframe”,即文档中的文档,在定位其中的元素时需要先定位到“iframe”标签并转换过去
    代码地址:https://gitee.com/zhubeier/zhebeier/blob/master/第五次大作业/第二题
    作业③:Flume日志采集实验

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

任务二:配置kafka

任务三:安装Flume客户端

进入目录

解压压缩包

解压“MRS_Flume_ClientConfig.tar”文件

安装Flume环境变量

解压Flume客户端

安装 FLume客户端

重启Flume服务

任务四:配置Flume采集数据


实验心得:
1)初步接触了基于华为云的实验,初次感受到“云”的概念

posted @ 2021-12-04 00:21  施一念  阅读(14)  评论(0编辑  收藏  举报