版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE3实验指导书实验课程:《数据采集》编写教师:叶丽珠适用专业:数据科学与大数据技术编写日期:2025-9-3前言本实验课程是与《数据采集技术》课程的理论教学内容相配套而开设的。数据采集技术是数据科学与大数据技术专业中一门重要的专业必修课程,在计算机软件的各个领域中均会使用到大量数据来进行数据分析、数据挖掘和开发测试,而掌握数据采集技术是获取数据资源的有效手段。本课程讲解利用Python语言爬取网络数据并提取关键信息的技术和方法,帮助学生掌握定向网络数据爬取和网页解析的基本能力,以及使用Python第三方库对采集到的数据进行预处理、分析和可视化展示。为后续的大数据分析、数据挖掘、数据可视化和机器学习等课程打下扎实的基础。此外,配合理论教学的综合案例演示、实验教学的案例实践,学生能够理论联系实际,理论指导实践,通过规范化地完成一系列数据采集技术案例分析、实现和实践等进一步巩固所学的相关知识,让学生在知识、能力、素质上得到进一步的提高。本课程介绍Python计算生态中最优秀的网络数据爬取和解析技术、数据预处理和可视化技术,具体讲授构建网络爬虫功能的两条重要技术路线:requests-bs4-re-xpath和Scrapy,所讲述内容广泛应用于Amazon、Google、PayPal、Twitter等国际知名公司。课程内容是进入大数据处理、数据挖掘、以数据为中心人工智能领域的必备实践基础。本课程完整地讲解了Python爬虫环境、爬虫简介、爬虫三大库的使用、正则表达式的应用、Lxml库与Xpath的使用、爬虫数据存储、使用逆向分析爬虫动态网页、基于表彰交互和Cookie实现模拟登录、使用Selenium爬取动态网页信息、Scrapy爬虫框架、认识和应对反爬虫、多线程与多进程爬虫等数据采集技术的主要内容,培养学生计算思维、数据思维及采用程序设计方法分析问题、解决问题的实战能力技术。本实验指导书选用了8个实验项目。主要有BeautifulSoup与Requests库的应用、正则表达式的应用、Lxml库与Xpath的应用、爬虫数据存储的应用、使用Selenium爬取动态网页、Scrap爬虫框架的应用等;实验指导书中给出了实验目的、实验设备、实验内容,学生在做实验前务必先认真预习实验指导书,注意应用相关原理解决实际的爬虫问题。由于编者水平有限,难免在本实验指导书中出现错误或不妥之处,望读者指正。目录TOC\o"1-1"\h\u17076实验一网络爬虫开发环境搭建与应用 122323实验二网络爬虫基础知识应用 325481实验四网页数据解析与提取的应用 929269实验五爬虫数据存储的应用 1228537实验六动态网页采集的应用 1527806实验七反爬与反反爬的应用 241006实验八Scrapy爬虫框架的应用 273185参考文献 30PAGEPAGE3实验一网络爬虫开发环境搭建与应用一、实验目的(1)掌握在Windows操作系统上安装Python解释器。(2)掌握在Windows操作系统上安装Python集成开发环境PyCharm。(3)学会通过Settings设置PyCharm环境、PythonInterpreter。(4)能够使用pip安装Python网络爬虫常用库,如requests、lxml等。(5)掌握在PyCharm中安装Python网络爬虫常用库,如Scrapy、BeautifulSoup等。(6)深入理解网络数据采集的工作原理。(7)熟练掌握网络数据采集的基本流程。(8)熟练掌握网络数据采集可视化工具的安装方法。(9)熟悉网络数据采集可视化工具的使用技巧。(10)能够依据数据采集需求精准明确采集目标、深入分析采集思路并确定合理的采集规则。(11)学会运用网络数据采集可视化工具高效地实现数据采集任务。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生在自己的电脑上安装有Requests和BeautifulSoup库。(4)学生需要在自己电脑上安装网络数据采集可视化工具。三、实验仪器材料(1)学生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库、网络数据采集可视化工具。四、实验内容任务1:Python网络爬虫环境搭建与配置。要求任务的源代码文件名为:实验1-1.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。(1)在个人计算机上安装Python3.13以及PyCharm2024.3.5软件。(2)对PyCharm的主题、字体、字号等环境参数进行设置,将PythonInterpreter选定为Python3.13,并尝试运用PyCharm编写代码,使其输出:Hello,Spider。(3)借助pip工具在“命令提示符”环境中安装requests、lxml等常用爬虫库。(4)在PyCharm中安装常用爬虫库BeautifulSoup、Scrapy、PyQuery、Selenium等。任务2:新浪微博搜索关键词信息采集。要求任务的源代码文件名为:实验1-2.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。(1)在用户计算机上完成网络数据采集可视化工具(如八爪鱼采集器)的下载与安装。(2)运用八爪鱼采集器在新浪微博网站(/weibo?q=%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB)中采集搜索关键词为“网络爬虫”的发帖信息,需抓取的字段包括发帖的用户名、头像链接、标题、发表时间、发表内容、分享数、评论数以及点赞数。拓展任务(选做):使用Requests和BeautifulSoup库采集任意主题、任意网站中健康身上的信息。五、实验思路与步骤1.任务1的实验思路与步骤(1)依据1.6.1小节内容,完成Python3.13的下载与安装操作。(2)参照1.6.2小节内容,完成PyCharm2024.3.5的下载、安装与配置流程。(3)运用pip工具依序完成requests、lxml等库的安装操作。(4)采用PyCharm单个安装方式完成BeautifulSoup库的安装。(5)利用PyCharm批量安装功能完成Scrapy、PyQuery、Selenium等库的安装。2.任务2的实训思路与步骤(1)参照1.6.4小节,完成八爪鱼采集器的下载与安装。(2)深入分析新浪微博搜索关键词“网络爬虫”的采集需求与采集思路。(3)依据1.7节内容,运用八爪鱼采集器实现新浪微博搜索关键词“网络爬虫”的发帖信息采集操作。
实验二网络爬虫基础知识应用一、实验目的(1)掌握requests库的基本使用。(2)学会使用css选择器解析HTML数据。(3)掌握数据采集的基本流程。(4)学习如何将采集到的数据存储为CSV文件。(5)掌握使用正则表达式提取HTML数据的方法。(6)学习如何通过解析音乐平台数据获取在线资源。(7)学会将采集到的音乐文件下载并存储为本地MP3格式。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生需要熟悉requests库、正则表达式的使用方法。(4)理解requests库、正则表达式的应用。三、实验仪器材料(1)学生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库四、实验内容任务1:采集微博热搜信息。微博热搜榜(/top/summary?cate=realtimehot)是新浪微博平台上实时更新的热门话题排行榜,反映当前用户关注的焦点。该榜单通常展示50个热搜词条,按热度从高到低排列。可以通过采集该页面的内容获取热搜榜排名、热搜话题内容及热度等信息。采集微博热搜榜信息,先使用Python的requests库获取页面HTML内容,再利用css选择器解析所需数据。如图2-1所示。将采集到的数据存储到“hotNews.csv”文件中。图2-1微博热搜信息任务2:采集网易云音乐热歌榜数据。网易云音乐热歌榜页面(/playlist?id=3778678)提供实时更新的热门音乐排行榜,如图2-2所示。通过采集该页面的内容,可以获取歌曲名称、歌手信息及歌曲播放链接。本案例将使用requests获取页面HTML数据,利用正则表达式提取音乐信息,并通过歌曲播放链接下载MP3文件保存到本地music文件夹中。图2-2网易云音乐热歌榜信息拓展任务(选做题),爬取的网站及内容不作限制(需积极健康向上),但需要使用到正则表达式知识对网页内容进行解析和提取。要求任务的源代码文件名为:2-3.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。五、实验思路与步骤1.任务1的实验思路与步骤(1)请求微博热搜页面的HTML数据。(2)导入requests库,通过requests模拟浏览器访问微博热搜榜页面,使用BeautifulSoup的css选择器,定位HTML中热搜榜数据所在的标签,提取排名、话题内容和热度。(3)对提取的内容进行格式化处理(如去掉多余标签、空格等),确保数据规范。(4)使用csv模块,将处理后的数据存储到weibo_hot.csv文件中,便于后续分析。2.任务2的实验思路与步骤(1)打开目标网页url,请求网易云音乐热歌榜页面的HTML数据。(2)使用requests模拟浏览器访问网易云音乐热歌榜页面,使用正则表达式匹配歌曲名称、歌手信息及播放链接。(3)通过歌曲播放链接使用requests下载MP3文件,并存储到本地music文件夹中。
实验三爬虫流程与Requests库的应用一、实验目的(1)熟悉Python爬虫的基本流程。(2)掌握使用Google开发者工具查看“Network”面板中各选项卡信息。(3)学会使用Requests库发起GET请求,以及保存采集的数据。(4)掌握网络爬虫的发起请求、解析数据和存储数据的基本流程。(5)掌握使用Google开发者工具查看“Network”面板中的“Fetch/XHR”动态加载的文件。(6)学会在“Payload”中查看携带的参数,以及在“Preview”中查看预览信息。(7)能够使用Requests库发起POST请求,解析数据和存储数据。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生熟悉爬虫基本流程。(4)理解Requests库的综合应用。三、实验仪器材料(1)学生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库四、实验内容任务1:采集读书“小说”类图书信息。要求任务的源代码文件名为:3-1.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。采集豆瓣读书主页/中的小说书箱信息,只需要采集第1页中的小说信息,如图3-1所示。将采集到的小说信息保存为“novel.html”。图3-1豆瓣读书小说信息任务2:爬取当当网的图书信息。要求任务的源代码文件名为:3-2.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。在有道翻译主页/index.html#/的文本框中输入某个需要翻译的英文单词,采集该单词的中文翻译内容,如图3-2所示。采集的数据存储保存到“word.json”文件。图3-2有道翻译主页五、实验思路与步骤1.任务1的实验思路与步骤(1)打开豆瓣读书主页/,单击“文学”类的“小说”,如图3-3所示。(2)在图3-3界面,使用Google开发者工具查看网页的请求地址、请求方法、响应状态和内容类型。(3)使用requests库向请求的目录网址发起请求。(4)将响应内容存储为“novel.html”。图3-3单击文学类“小说”2.任务2的实验思路与步骤(1)使用Google开发者工具查看网页的请求地址、请求方法、携带的参数和预览信息。(2)通过Requests库向请求目标网址发起POST请求。(3)将翻译的中文内容存储到“word.json”文件。
实验四网页数据解析与提取的应用一、实验目的(1)掌握如何使用requests库进行网络请求获取网页源代码。(2)学会使用BeautifulSoup库解析HTML文档。(3)熟练定位HTML标签并提取其中的文本内容。(4)了解如何将提取的数据格式化存储到CSV文件中。(5)学会使用requests库进行网络请求获取网页源代码。(6)掌握lxml库和XPath查询语言的使用方法。(7)能够从HTML文档中提取复杂结构的数据信息。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生学会使用BeautifulSoup库、正则表达式和lxml库和XPath查询语言解释HTML文档。(4)学生理解BeautifulSoup库、正则表达式和lxml库和XPath查询语言的语法。三、实验仪器材料(1)学生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库四、实验内容任务1:采集“小吃”美食菜谱信息。要求任务的源代码文件名为:4-1.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。利用requests和BeautifulSoup库,采集豆果美食网站中“广东小吃”菜谱信息(/caipu/%E5%B9%BF%E4%B8%9C%E5%B0%8F%E5%90%83/0/0)。采集的小吃菜谱字段包括:图片链接、标题、食材的配料、评分/收藏、菜谱详细链接、作者名和作者详细链接共七个字段,如图4-1所示。采集的“广东小吃”菜谱信息存储在当前工程目录下的“Snack_menu.csv”文件中。图4-1“广东小吃”菜谱信息。任务2:采集电商平台商品信息要求任务的源代码文件名为:4-2.py,并在源代码的起始位置输出自己真实的学号、姓名和班级信息。采集电商平台某品类商品(如保温杯)的名称、价格、评论数、品牌、型号和规格等信息,在主页上采集商品的名称、价格、评论数和链接,如图4-2所示。在详细页采集商品的品牌、型号和规格。爬取的商品数据保存到“Vacuum_cup.csv”文件。图4-2电商平台主页商品信息五、实验思路与步骤1.任务1的实验思路与步骤(1)通过requests循环获取“广东小吃”菜谱页面的HTML内容。(2)使用BeautifulSoup解析返回的响应内容,提取图片链接、标题、食材的配料、评分/收藏、菜谱详细链接、作者名和作者详细链接等菜谱信息。(3)将采集到的“广东小吃”菜谱信息保存到本地的“Snack_menu.csv.csv”文件。2.任务2的实验思路与步骤(1)获取电商网站“保温杯”商品主页面的HTML内容。(2)使用lxml和XPath解析、定位并提取商品的名称、价格、评论数和链接。(3)向商品链接发起请求返回详细页内容,定位和提取商品的品牌、型号和规格。(4)采集的商品信息保存在“Vacuum_cup.csv”文件。
实验五爬虫数据存储的应用一、实验目的(1)熟练掌握JSON模块中常用方法的使用。(2)理解JSON数据结构并灵活应用。(3)学会安装和配置MongoDB数据库。(4)熟练使用pymongo库进行数据库操作。(5)能够将采集到的高考院校录取信息存储到JSON文件和MongoDB数据库中。(6)熟悉MySQL数据库的安装与配置。(7)掌握使用Python连接和操作MySQL数据库。(8)能够将采集的数据存储至MySQL数据库中。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生熟悉MongoDB数据库、MySQL数据库的安装和使用。(4)学生理解将爬虫数据存储到JSON文件、MongoDB数据库和MySQL数据库中的综合案例。三、实验仪器材料(1)学生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库、MongoDB数据库和MySQL数据库。四、实验内容任务1:采集高考院校信息。本任务采集高考100主页(/daxueku)上的院校信息。由于院校详情页中的信息更为丰富,由此在每所院校的详情页采集如下信息:学校名称、学历、院校满意度、双一流学科名单、就业率、2023年最低录取分数线、开设专业和大学简介共八个字段,如图5-1所示。采集的高考院校信息分别存储到“school.json”文件和MongoDB服务器中“mydb”数据库的“school”集合中。图5-1高考院校信息任务2:采集Top250电影信息。采集电影Top250网站上每部电影详情页中的电影名称、导演、主演、类型、制片国家、上映时间、片长和评分和评价等信息,如图5-2所示。采集的250部电影保存到MySQL服务器中“mysqlDB”数据库的“movie”表中。图5-2Top250电影详情页信息五、实验思路与步骤1.任务1的实验思路与步骤(1)打开高考100主页,手动翻页浏览前3页的网址:/daxueku?p=1/daxueku?p=2/daxueku?p=3从上述3个网页地址可以发现只需更改p=后面的数字,即可构建爬虫采集的网页地址。(2)先向爬虫地址列表中的每个主页发起请求,获取主页上每所院校的详情页地址。接着,对每个院校的详情面发起请求,从详情页的响应内容中解析和提取需要采集的字段信息:学校名称、学历、院校满意度、双一流学科名单、就业率、2023年最低录取分数线、开设专业和大学简介。(3)将采集到的高考院校信息存储至“school.json”文件和MongoDB服务器中“mydb”数据库的“school”集合中。2.任务2的实验思路与步骤(1)打开电影Top250主页,分析和构建爬虫的主页面地址列表。(2)循环爬取每个主页面并获取每部电影的详情页地址。(3)循环向每部电影的详情页地址发起请求,从返回的响应内容中解析和提取电影名称、导演、主演、类型、制片国家、上映时间、片长和评分和评价等电影信息。(4)将采集的250部电影信息存储到MySQL数据库的“movie”表中。
实验六动态网页采集的应用一、实验目的(1)掌握逆向分析法的基本原理和过程。(2)学会使用浏览器开发者工具分析网页的网络请求和响应。(3)能够找到动态加载数据的请求接口及其参数。(4)编写脚本构造HTTP请求并提取所需数据。(5)掌握Selenium插件的安装和配置方法。(6)学会使用Selenium模拟用户操作来采集动态网页数据。(7)掌握定位网页元素及提取数据的技巧。(8)能够将采集到的数据保存为结构化的CSV文件。(9)学会综合应用逆向分析法采集动态网页数据。(10)学会综合应用Selenium插件采集动态网页数据。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生熟悉根据网页源代码区分动态网页与静态网页。(4)学生熟悉使用逆向工程方法分析采用异步加载技术的网页URL。(5)学生理解对采用了异步加载技术的动态网页信息进行爬取的综合案例。三、实验仪器材料(1)生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库四、实验内容任务1:采集知乎“发现栏目”帖子信息。使用逆向分析法采集知乎发现主页(网址详见前言二维码)中“近期热点”和“潜力问题”两个栏目的帖子信息。本实训案例将采集这两个栏目下的“全部”、“数码”、“科技互联网”专栏,爬取每个专栏的小时榜、日榜和周榜等帖子信息,具体获取“近期热点”栏目帖子的标题、专题、标签、浏览总量、关注增量、浏览增量、回答增量和赞同增量等字段,如图6-1所示。以及采集“潜力问题”栏目帖子的标题、专题、标签、潜力值、24小时浏览增量、24小时浏览问题、24小时回答增量和24小时回答总量等字段信息,如图6-2所示。将采集到的“近期热点”和“潜力问题”两类帖子信息存储至名为“hot_post.csv”的文件中。图6-1“近期热点”栏目帖子信息图6-2“潜力好问题”栏目帖子信息任务2:采集“爬虫工程师”招聘信息。本实训案例通过selenium插件模拟登录51job招聘网站,搜索并采集“爬虫工程师”岗位招聘信息。使用lxml库中的etree模块解析返回的爬虫工程师招聘信息网页,获取职位名称、公司名称、公司类型、企业类别、工资、经验要求、学历、地址、关键词等招聘信息,如图6-3所示。将采集的招聘信息存储到“job.csv”文件。图6-3采集招聘网站中“爬虫工程师”岗位招聘信息任务3:采集热播影视数据。乐视视频平台是中国领先的在线视频平台之一,提供丰富的电影、电视剧等内容。通过获取观众对热门和最新影视作品的评价、评分及播放量,用户可以深入了解观众的喜好。本案例采集该视频平台主页和详情页中热播电影/电视剧的作品名称、子名称、评分、类型、国家/地区、导演、演员、播放数、评论数、简介等字段信息,如图6-4所示。分别使用Selenium插件和逆向分析法采集每一部热播电影/电视剧的影视信息,并将采集的电影/电视剧信息存储至movie_TV.csv文件中。图6-4影视信息五、实验思路与步骤1.任务1的实验思路与步骤(1)打开知呼发现页的主页,进入“近期热点”、“潜力好问题”栏目,根据滑动页面的进度条变化以及查看页面源代码判断网页为动态网页。(2)打开开发者工具,选择network面板中的Fetch/XHR,手动向下滑动帖子,观察“名称”列表中动态加载的文件,并查看请求URL和Content-Type,可以判断响应内容为JSON格式的数据,如图6-5所示。图6-5查看请求URL和响应内容格式(3)查看各栏目(全部、科技互联网、数码)不同榜单(小时榜、日榜、周榜)多页帖子,找到请求URL的规律:每个栏目的每个榜单的首页url与后继页的不一样,但后续页的url存在规律,并且三个榜单之间的url也存在规律。(4)下面网址是“近期热点”不同榜单不同页面的url:/api/v4/creators/rank/hot?domain=0&period=hour/api/v4/creators/rank/hot?domain=0&limit=20&offset=20&period=hour/api/v4/creators/rank/hot?domain=0&limit=20&offset=40&period=hour/api/v4/creators/rank/hot?domain=100001&period=hour/api/v4/creators/rank/hot?domain=100001&period=day/api/v4/creators/rank/hot?domain=100001&period=week可见榜单的切换与period等于的有关:小时榜为hour、日榜为day、周榜为week;栏目切换与domain等于的有关:等于0为“全部”栏目,等于100009为“数码”栏目,等于1000013为“科技互联网”栏目,这表明根据网页渲染后的栏目排序与domain的值有关。在后续页的url,只有offset的值发生变化,步长为20。(5)下面网址是“潜力好问题”不同榜单不同页面的url:/api/v4/creators/rank/potential?domain=0&sort_type=all/api/v4/creators/rank/potential?domain=0&limit=20&offset=20&sort_type=all/api/v4/creators/rank/potential?domain=0&limit=20&offset=40&sort_type=all/api/v4/creators/rank/potential?domain=100001&sort_type=all/api/v4/creators/rank/potential?domain=100001&limit=20&offset=20&sort_type=pv_incr_rate/api/v4/creators/rank/potential?domain=100002&limit=20&offset=40&sort_type=answer_incr_rate可以看到榜单的切换与sort_type的值有关:综合排序榜为all、浏览增量榜为pv_incr_rate、回答增量榜为answer_incr_rate;栏目切换与domain的值有关:等于0为“全部”栏目,等于100009为“数码”栏目,等于1000013为“科技互联网”栏目。说明根据网页渲染后栏目排序与domain的值有关;在后续页的url,改变的只有offset,且步长为20。将采集到的“近期热点”和“潜力问题”两类帖子信息存储至名为“hot_post.csv”的文件中。2.任务2的实验思路与步骤(1)使用Selenium插件进入招聘网站。首先,打开开发者工具,分析并定位搜索框,接着在搜索框中输入“爬虫工程师”,然后定位“搜索”按钮并单击,如图6-6所示。图6-6定位搜索框和搜索按钮(2)进入“爬虫工程师”岗位招聘页面,使用etree解析和xpath获取职位名称、公司名称、公司类型、企业类别、工资、经验要求、学历、地址、关键词等招聘信息。(3)当采集完一个页面后,需要进入下一页继续爬取。首先,定位到“下一页”按钮,再使用selenium插件模拟点击“下一页”,如图6-7所示。直到“下一页”按钮变成不可以单击状态,则所有页面的招聘信息都采集完成。保存采集的招聘信息至“job.csv”文件。图6-7定位并单击“下一页”按钮3.任务3的实验思路与步骤(1)在百度中搜索“乐视视频”并打开该视频网站主页,打开开发者工具,切换到“network”面板中的“Fetch/XHR”选项。使用selenium插件来模拟用户登录,使用selenium插件的find_element()方法定位和查找用户登录元素,如图6-8所示。图6-8定位和模拟登录(2)由于电影/电视剧名称等影视基本信息不在主页的网页源代码,进入电影(电视剧)页面爬取热播影视信息时,发现点击页面上的“点击加载更多”就可以动态加载更多的影视信息,说明该网页为动态网站,如图6-9所示。使用selenium模拟请求主页获取影视的名称、详情页链接。图6-9判断影视页面是否为动态网站(3)打开开发者工具,切换到“network”元素面板的“Fetch/XHR”选项,当多次点选图6-13所示的“点击加载更多”并向下滑动来浏览影视信息时,可以在图6-10所示的“名称”列表中看到每个主页面的网页超链接有一定的规律,pn值在累加1,由此可构建热播电影/电视剧的主页爬虫地址:/getLesoData?from=pc&src=1&stype=1&ps=30&pn={}。同时也可发现返回的响应内容类型为JSON数据。图6-10分析影视数据的爬虫地址(4)循环向热播电影/电视剧主页和详情页地址发起请求,解析响应内容并提取影视的作品名称、子名称、评分、类型、国家/地区、导演、演员、播放数、评论数、简介。(5)将采集到热播电影/电视剧信息存储至“movie_TV.csv”文件中。
实验七反爬与反反爬的应用一、实验目的(1)掌握requests库的基本使用。(2)掌握解析JSON格式的数据。(3)掌握采集互联网开放API的数据。(4)了解如何将提取的数据格式化存储到Excel文件中。(5)学会使用selenium模拟真实用户的行为,从而绕过网站的反爬虫机制。(6)导入pyquery库,并使用它解析html网页文件。(7)能够从HTML文档中提取复杂结构的数据信息。二、实验原理(1)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库。(2)学生需要已经学习过Python程序设计语言,熟悉Python的基本语法和结构。(3)学生熟悉反爬策略与反反爬技巧。(4)学生熟悉使用开放API和selenium插件实现反反爬。(5)学生理解使用pyquery库解析和提取html网页内容。三、实验仪器材料(1)生PC机52台(2)教师机1台(3)教师机安装有极域教师机端、学生PC机安装有极域学生端(4)教学机和学生机需要安装PyCharm和python解释器、爬虫常用的第三方库、API、selenium插件和pyquery库。四、实验内容任务1:采集中国政府网新闻信息。中华人民共和国国务院新闻办公室网(以下简称“国务院新闻网”)对社会免费开放了新闻API接口(/govdata/gov/home.json),读者可以通过此接口请求新闻数据,返回数据为JSON格式。我们将通过请求此接口合法获取可靠的最新资讯。利用requests库,将JSON字符串转化为Python对象,采集中国政府网站中新闻信息。如图7-1所示。将采集到的数据存储到“时政热词1.xlsx”文件中。图7-1中国政府网新闻信息任务2:采集中华英才网招聘信息。采集中华英才网中的数据挖掘、数据分析师、大数据开发、爬虫工程师、算法工程师等大数据行业相关岗位的公司名称、岗位名称、薪资待遇等信息,将招聘信息存入CSV文件,利用Python对这些招聘信息进行收集和分析。如图7-2所示。在首页输入需要采集的岗位关键字,进入相应招聘岗位的信息列表,将采集到岗位信息存储到大数据岗位.csv文件。图7-2中华英才网招聘信息五、实验思路与步骤1.任务1的实验思路与步骤(1)从开发API采集数据。(2)导入requests库,并请求国务院新闻网API,使用requests对象的json()方法,将JSON字符串转化为Python对象。(3)在浏览器中查看数据的层级结构。将请求地址url复制到浏览器中进行查看。打开谷歌浏览器,输入地址/govdata/gov/home.json。(4)对内容进行定位、采集,导入pandas库,使用pandas的to_excel()方法,将数据存储为excel。2.任务2的实验思路与步骤(1)使用selenium爬取招聘信息。(2)使用pyquery解析网页数据,自定义数据解析方法接受一个pyquery的对象获取职位名、薪资等重要数据。(3)数据存储,采集的招聘信息保存在“大数据岗位.csv”文件中。
实验八Scrapy爬虫框架的应用一、实验目的(1)掌握如何使用Scrapy框架进行网络请求并获取网页源代码。(2)学会使用XPath和CSS选择器解析HTML文档。(3)熟练定位HTML标签并提取其中的文本内容。(4)了解如何将提取的数据格式化存储到MongoDB中。(5)学会使用Scrapy框架进行网络请求获取网页源代码。(6)掌握Scrapy的item和pipeline使用方法。(7)能够从H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026下半年舟山市定海区军队离退休干部休养所公开招聘编外用工人员1人笔试参考题库及答案详解
- 2026年云南中医药大学招聘非事业编制教辅岗工作人员(15人)笔试模拟试题及答案详解
- 2026年郴州市苏仙区政务服务中心(窗口人员)招聘笔试备考试题及答案详解
- 2026年南昌市湾里区工会人员招聘考试备考题库及答案详解
- 2026年广东省深圳市工会人员招聘考试参考试题及答案详解
- 2026年眉山市事业单位招聘试笔试试题(附答案)
- 2026年首诊制度落实试题附答案
- 2025年甘肃省武威市医疗系统事业编人员招聘考试试题及答案详解
- 2026江苏淮安市洪泽区卫生健康委员会所属事业单位面向农村订单定向医学生招聘编外人员2人笔试模拟试题及答案详解
- 2026年成都市金牛区政务服务中心(窗口人员)招聘考试参考试题及答案详解
- 道路施工组织技术方案
- 未成年人保护法测试题一及答案
- 急性胰腺炎的护理查房模板
- (新版)铁路机车车辆制动钳工(中级)职业鉴定考试题库(含答案)
- 伦理审查表(一式三份)
- 人体艺术欣赏
- 化工节能原理与技术课件-XXXX09
- 大学生仓库管理员暑期社会实践报告
- 续新三国志英杰传攻略
- GB/T 29678-2013烫发剂
- GB/T 14413-1993船用舷窗
评论
0/150
提交评论