Python爬虫项目教程(第2版)(微课版)-教案_第1页
Python爬虫项目教程(第2版)(微课版)-教案_第2页
Python爬虫项目教程(第2版)(微课版)-教案_第3页
Python爬虫项目教程(第2版)(微课版)-教案_第4页
Python爬虫项目教程(第2版)(微课版)-教案_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深圳信息职业技术大学教 案2025年/2026年第1学期专业大类 电信息 课程名称 Python网络爬虫程序技术课程类别 专课 教学模式(课教混合教) 混式教学任课班级24件技术选课班 任课教师 锐军 所属院部 件学院 2025年8 月26 日教学单元1.1Python爬虫基础周次1时数4授课班级教学目标知识目标理解爬虫程序的基本概念、工作原理和应用场景。Python(requestsBeautifulSoup。HTMLCSS技能目标Python学会使用浏览器开发者工具分析网页结构,定位数据的存储位置。掌握基本的反爬虫机制及应对方法。情感目标培养学生对爬虫技术的兴趣和探索精神。引导学生遵守网络爬虫的法律法规和道德规范,合理使用爬虫技术。教学重点:爬虫程序的基本实现流程。requestsBeautifulSoupHTML教学难点网页结构的分析与数据提取。应对简单的反爬虫机制。实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:爬虫程序概述(30分钟)导入新课(5)问题引入:展示一些常见的数据来源(如新闻网站、社交媒体、电商平台,讨论如何获取这些数据。引出主题:介绍爬虫程序的定义——一种自动从互联网上抓取数据的程序。展示案例:通过一些简单的爬虫案例(如抓取新闻标题、天气数据等,让学生初步了解爬虫的功能。理论讲解(20)爬虫程序的分类介绍爬虫的分类:通用爬虫(如搜索引擎爬虫)和聚焦爬虫(针对特定网站或数据。讨论不同类型的爬虫应用场景。爬虫的工作原理HTTP(GET、POST、状态码等。网页结构基础HTMLHTMLCSS(如标签选择器、类选择器、ID择器等,并演示如何使用CSS选择器定位元素。课堂讨论(5)提问学生关于爬虫的应用场景和可能的法律问题。引导学生思考爬虫的合理使用范围。requests(40)复习导入(5)回顾爬虫的基本工作原理和网页结构分析。HTMLCSS理论讲解(15)requestsrequestsHTTPrequestsget()、post()等。讲解如何获取响应内容(response.text、response.json()。请求头的作用讲解请求头的概念及其在爬虫中的重要性。介绍常见的请求头字段(User-Agent、Referer。讲解如何设置请求头以模拟浏览器行为。实践操作(15)GETrequests.get(GETHTMLGETHTML任务:设置请求头教师演示如何设置请求头,模拟浏览器访问。学生练习设置请求头,尝试访问一些有反爬机制的网页。课堂小结(5)requests强调设置请求头在爬虫中的重要性。第三部分:使用BeautifulSoup库解析HTML(40分钟)复习导入(5)requestsGET理论讲解(15)BeautifulSoupBeautifulSoupHTMLBeautifulSoupBeautifulSoup对象、解析HTML文档。BeautifulSoupHTML(如find()、find_all()、select()等。数据提取HTML(如文本内容、属性值等。通过示例代码演示数据提取的过程。实践操作(15)HTMLBeautifulSoupHTMLBeautifulSoupHTML任务:数据提取与保存教师演示如何将提取的数据保存到本地文件(TXT、CSV格式。学生练习将提取的数据保存到本地文件。课堂小结(5)BeautifulSoupHTML)复习导入(5)requestsBeautifulSoupHTML理论讲解(10)常见反爬虫机制IP数据等。IP、设置延时、模拟登录等。爬虫的法律与道德规范强调爬虫的法律风险和道德规范,引导学生合理使用爬虫技术。综合实践(20)任务:完成一个简单的爬虫项目教师布置一个综合实践任务,要求学生使用所学知识编写一个简单的爬虫程序,抓取指定网站的数据。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的爬虫程序,分享实现过程和遇到的问题。教师对学生的程序进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:常见反爬虫机制及应对方法、爬虫的法律与道德规范。强调综合实践的重要性,鼓励学生继续探索和学习爬虫技术。教学资源Python(PyCharm、JupyterNotebook。HTMLrequestsBeautifulSoup爬虫案例代码示例。1.课后作业:完成一个简单的爬虫项目,抓取一个指定网站的数据(如新闻标题、图片等,并保存到本地文件。500(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元1.2Flask创建Web网站周次2时数4授课班级教学目标知识目标FlaskFlaskWeb理解路由、视图函数、模板渲染和表单处理的基本原理。技能目标FlaskWeb掌握如何配置路由、处理请求和响应。Jinja2HTML掌握基本的表单处理和数据交互。情感目标WebWeb教学重点:Flask路由和视图函数的配置。Jinja2表单处理和数据交互。教学难点模板渲染和数据传递。表单处理和数据验证。实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:Flask框架概述(30分钟)导入新课(5)WebWebFlaskPythonWebFlaskFlask理论讲解(20)Flask轻量级框架,易于上手。灵活的路由系统。内置开发服务器和调试工具。FlaskFlaskFlaskFlaskbashpipinstallFlask检查安装是否成功:PythonfromflaskimportFlaskapp=Flask(__name__)课堂讨论(5)WebFlaskFlaskFlask(40)复习导入(5)FlaskFlask理论讲解(10)FlaskFlaskFlask(name)的作用。配置路由URL介绍@app.route()装饰器的使用方法。视图函数讲解视图函数的作用:处理请求并返回响应。HTML实践操作(20)FlaskFlaskPythonfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhome():return'Hello,Flask!'ifname=='main__':app.run(debug=True)o Flask:5000/。任务:添加更多路由教师演示如何添加多个路由:Python@app.route('/about')defabout():return'Thisistheaboutpage.'学生练习添加更多路由,如/contact课堂小结(5)Flask强调视图函数的作用。第三部分:模板渲染与Jinja2(40分钟)复习导入(5)Flask提问学生关于视图函数的作用。理论讲解(10)模板渲染HTMLFlaskJinja2。render_template()render_template()函数渲染模板。介绍如何传递变量到模板中。模板文件的结构讲解模板文件的存放位置(templates。介绍模板文件的基本结构。实践操作(20)HTMLHTMLindex.html:HTML<!DOCTYPEhtml><html><head><title>Home</title></head><body><h1>{{title}}</h1><p>{{content}}</p></body></html>Python

o HTML任务:渲染模板render_template()渲染模板:fromflaskimportrender_template@app.route('/')defhome():returnrender_template('index.html',title='Welcome',content='Thisisthehomepage.')o 学生练习渲染模板,传递变量到模板中。课堂小结(5)Jinja2强调模板文件的存放位置和基本结构。第四部分:表单处理与数据交互(40)复习导入(5)Jinja2提问学生关于模板文件的存放位置和基本结构。理论讲解(10)表单处理讲解表单的基本概念:用于收集用户输入。HTML数据交互Flaskrequest数据验证讲解如何对用户输入的数据进行验证。实践操作(20)任务:创建表单HTMLHTML<formmethod="POST"action="/submit"><labelfor="name">Name:</label><inputtype="text"id="name"name="name"><buttontype="submit">Submit</button></form>Python

o 学生练习创建自己的表单。任务:处理表单提交Flaskfromflaskimportrequest@app.route('/submit',methods=['POST'])defsubmit():name=request.form['name']returnf'Hello,{name}!'o 学生练习处理表单提交的数据。课堂小结(5)总结表单处理和数据交互的方法。request课后作业:Flask一个首页路由/,显示欢迎信息。一个关于页面路由/about,显示关于信息。一个表单页面路由/contact一个处理表单提交的路由/submit,接收用户输入的名字并返回欢迎信息。HTML(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元1.3GetPost访问网站周次3时数4授课班级教学目标知识目标HTTPGETPOSTPythonrequestsGETPOST理解请求头、请求参数和请求体的作用。技能目标requestsGETrequestsPOST学会处理响应内容,包括文本、JSON情感目标培养学生对网络编程的兴趣和探索精神。引导学生理解网络请求的基本流程和规范。教学重点:GETPOSTrequestsGETPOST处理响应内容。教学难点理解请求头、请求参数和请求体的作用。处理复杂的响应内容(JSON。实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:HTTP协议与GET/POST请求概述(30分钟)导入新课(5)HTTPHTTPGETPOST。GETPOST请求的示例。理论讲解(20)HTTPHTTPHTTPGETGETURLGETPOSTPOSTPOSTGETPOSTGETPOST课堂讨论(5)GETPOST引导学生思考在实际开发中如何选择合适的请求方式。requestsGET(40)复习导入(5)HTTPGET/POSTGET理论讲解(10)requestsrequestsHTTPrequestsbashpipinstallrequestsrequests.get()方法的基本用法。请求头的作用讲解请求头的概念及其在请求中的重要性。介绍常见的请求头字段(User-Agent、Referer。o 讲解如何设置请求头以模拟浏览器行为。处理响应内容讲解如何获取响应内容(response.text、response.json()。介绍响应状态码的作用。实践操作(20)GETrequests.get(GETHTMLPythonimportrequestsurl=''response=requests.get(url)print(response.text)GETHTML任务:设置请求头教师演示如何设置请求头,模拟浏览器访问:Pythonheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.3'}response=requests.get(url,headers=headers)print(response.text)学生练习设置请求头,尝试访问一些有反爬机制的网页。课堂小结(5)requests强调设置请求头在请求中的重要性。第三部分:使用requests库发送POST请求(40分钟)复习导入(5)requestsGET提问学生关于请求头的作用。理论讲解(10)POSTPOSTrequests.post()方法的基本用法。请求体的作用POST介绍如何在请求体中传递数据(如表单数据、JSON。处理响应内容POSTJSON实践操作(20)POSTrequests.postPOSTPythonimportrequestsurl='https://www.ex/login'data={'username':'your_username','password':'your_password'}response=requests.post(url,data=data)print(response.text)POSTJSONJSONPythonresponse=requests.post(url,data=data)ifresponse.status_code==200:result=response.json()print(result)JSON课堂小结(5)POST强调处理响应内容的重要性。第四部分:综合实践与案例分析(40)复习导入(5)GETPOST提问学生关于请求头、请求体的作用。理论讲解(10)综合案例分析介绍一个实际的网络请求案例,如登录网站、获取用户信息等。GETPOST常见问题及解决方案讲解在发送网络请求时可能遇到的问题,如请求超时、数据编码问题等。提供解决方案,如设置超时时间、处理编码问题。综合实践(20)任务:完成一个综合实践项目requests登录一个网站并获取用户信息。提交表单并处理返回的数据。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的实践项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:GETPOST强调综合实践的重要性,鼓励学生继续探索和学习网络请求技术。课后作业:创建一个简单的Flask应用,包含以下功能:一个首页路由/,显示欢迎信息。一个关于页面路由/about,显示关于信息。一个表单页面路由/contact一个处理表单提交的路由/submit,接收用户输入的名字并返回欢迎信息。(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元1.4Python正则表达式周次4时数4授课班级教学目标知识目标了解正则表达式的基本概念和作用。掌握正则表达式的常见元字符和语法。理解正则表达式在字符串处理中的应用。技能目标Pythonre学会编写简单的正则表达式来匹配特定的字符串模式。掌握如何使用正则表达式解决实际问题。情感目标培养学生对正则表达式的兴趣和探索精神。引导学生理解正则表达式在文本处理中的重要性。教学重点:正则表达式的常见元字符和语法。Pythonre正则表达式的匹配、搜索、替换和分割操作。教学难点编写复杂的正则表达式。理解正则表达式中的贪婪模式和非贪婪模式。实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:正则表达式概述(30分钟)导入新课(5)问题引入:讨论如何在字符串中查找特定的模式,例如查找电话号码、电子邮件地址等。引出主题:介绍正则表达式——一种用于字符串模式匹配的强大工具。展示案例:通过一些简单的正则表达式示例展示其功能。理论讲解(20)正则表达式的基本概念讲解正则表达式的作用:用于字符串的搜索、匹配、替换等操作。介绍正则表达式的应用场景,如数据验证、文本解析等。正则表达式的元字符讲解常见的元字符(如.、*、+、?、^、$、[]、()等)及其含义。通过示例展示元字符的使用方法。正则表达式的语法讲解如何组合元字符来构建复杂的模式。介绍如何使用字符集、量词、分组等语法。课堂讨论(5)提问学生关于正则表达式的基本概念和元字符。引导学生思考正则表达式在实际应用中的作用。第二部分:Pythonre(40)复习导入(5)回顾正则表达式的基本概念和元字符。提问学生关于正则表达式的应用场景。理论讲解(10)rePythonrerePythonimportrerere.match()、re.search()、re.findall()、re.sub()等。正则表达式的编译pile()编译正则表达式,提高性能。介绍如何使用编译后的正则表达式对象进行匹配操作。实践操作(20)re.matchre.search()re.matchre.search()进行模式匹配:Pythonimportretext="Hello,myemailisexample@"pattern=r'\w+@\w+\.\w+'match=re.search(pattern,text)ifmatch:print("Found:",match.group())re.matchre.search()查找字符串中的模式。re.findall()re.findall()查找所有匹配的子串:Pythonmatches=re.findall(pattern,text)print("Found:",matches)re.findall()查找所有匹配的子串。课堂小结(5)re强调正则表达式编译的重要性。第三部分:正则表达式的高级特性(40)复习导入(5)rere.match()、re.searchre.findall()的使用。理论讲解(10)分组和捕获讲解如何使用圆括号()进行分组和捕获。group()方法获取捕获的子组。贪婪模式与非贪婪模式讲解贪婪模式(默认)和非贪婪模式的区别。通过示例展示如何使用*?、+?等非贪婪量词。特殊字符和转义讲解如何处理正则表达式中的特殊字符。介绍如何使用\进行转义。实践操作(20)任务:使用分组和捕获教师演示如何使用分组和捕获提取特定部分的字符串:Pythonpattern=r'(\w+)@(\w+)\.(\w+)'match=re.search(pattern,text)ifmatch:print("Username:",match.group(1))print("Domain:",match.group(2))print("Suffix:",match.group(3))学生练习使用分组和捕获提取特定部分的字符串。任务:使用非贪婪模式教师演示如何使用非贪婪模式匹配字符串:Pythontext="<tag>Somecontent</tag>"pattern=r'<.*?>'matches=re.findall(pattern,text)print("Found:",matches)学生练习使用非贪婪模式匹配字符串。课堂小结(5)总结正则表达式的高级特性,包括分组、捕获、贪婪模式和非贪婪模式。强调特殊字符和转义的重要性。第四部分:综合实践与案例分析(40)复习导入(5)回顾正则表达式的高级特性。提问学生关于分组、捕获和贪婪模式的使用。理论讲解(10)综合案例分析介绍一个实际的正则表达式案例,如解析日志文件、提取HTML标签等。分析案例中涉及的正则表达式模式。常见问题及解决方案讲解在使用正则表达式时可能遇到的问题,如性能问题、复杂模式的编写等。提供解决方案,如优化正则表达式、使用调试工具等。综合实践(20)任务:完成一个综合实践项目教师布置一个综合实践任务,要求学生使用正则表达式完成一个实际的文本处理项目,如:提取日志文件中的错误信息。HTML学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的实践项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:正则表达式的基本概念、re用、高级特性、综合实践。强调正则表达式在文本处理中的重要性,鼓励学生继续探索和学习正则表达式。课后作业:正则表达式爬取外汇网站数据(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元2.1BeautifulSoup的find函数查找周次5时数4授课班级教学目标知识目标BeautifulSoupHTMLfind技能目标BeautifulSoupHTMLfindHTML学会提取元素的文本内容和属性值。情感目标Web引导学生理解数据提取在实际应用中的重要性。教学重点:BeautifulSoupfindHTML教学难点HTMLfindHTML实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:BeautifulSoup概述(30分钟)导入新课(5)HTMLBeautifulSoupHTMLXML文档的Python库。HTMLBeautifulSoup理论讲解(20)BeautifulSoupBeautifulSoupHTMLXMLBeautifulSoupbashpipinstallbeautifulsoup4HTMLHTMLHTMLHTML<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www.">Link</a></body></html>BeautifulSoupBeautifulSoupPythonfrombs4importBeautifulSouphtml_doc="""<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www.">Link</a></body></html>"""soup=BeautifulSoup(html_doc,'html.parser')课堂讨论(5)HTMLHTML(40)复习导入(5)BeautifulSoupHTMLBeautifulSoup理论讲解(10)findfindHTMLfindPythonsoup.find(name,attrs,recursive,text,**kwargs)参数说明:name:标签名称。attrs:属性字典。recursive:是否递归查找。text:查找文本内容。示例:查找特定标签findHTMLPythontitle=soup.find('title')print(title.text)实践操作(20)任务:查找标题findPythontitle=soup.find('title')print("Title:",title.text)学生练习查找标题标签。任务:查找链接findPythonlink=soup.find('a')print("Link:",link['href'])href课堂小结(5)findfindHTML(40)复习导入(5)findfind理论讲解(10)使用属性查找HTMLPythonelement=soup.find('a',attrs={'href':''})o attrs使用文本内容查找HTMLPythonelement=soup.find(text='Link')text组合查找讲解如何结合标签名、属性和文本内容进行组合查找:Pythonelement=soup.find('a',text='Link',attrs={'href':''})实践操作(20)任务:查找特定属性的元素findPythonelement=soup.find('a',attrs={'href':''})print("Element:",element)学生练习查找具有特定属性的元素。任务:查找特定文本的元素findPythonelement=soup.find(text='Link')print("Element:",element)学生练习查找包含特定文本的元素。任务:组合查找教师演示如何结合标签名、属性和文本内容进行组合查找:Pythonelement=soup.find('a',text='Link',attrs={'href':''})print("Element:",element)学生练习组合查找。课堂小结(5)findfind)复习导入(5)findfind理论讲解(10)综合案例分析HTMLfind常见问题及解决方案findHTMLfind_all综合实践(20)任务:完成一个综合实践项目教师布置一个综合实践任务,要求学生使用BeautifulSoupfindHTML提取新闻标题和链接。提取表格中的数据。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的实践项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点课后作业课后作业:正则表达式爬取外汇网站数据(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元2.2BeautifulSoup的select函数查找周次6时数4授课班级教学目标知识目标BeautifulSoupCSSselect技能目标BeautifulSoupHTMLselectCSSHTML学会提取元素的文本内容和属性值。情感目标Web引导学生理解数据提取在实际应用中的重要性。教学重点:BeautifulSoupCSSselect教学难点CSSHTMLCSS实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:BeautifulSoup与CSS选择器概述(30分钟)导入新课(5)HTMLBeautifulSoupHTMLXML文档的Python库。HTMLBeautifulSoup理论讲解(20)BeautifulSoupBeautifulSoupHTMLXMLBeautifulSoupbashpipinstallbeautifulsoup4HTMLHTMLHTMLHTML<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a><divclass="container"><p>Anotherparagraph.</p></div></body></html>CSSCSS标签选择器:tag类选择器:.classIDid属性选择器:[attribute="value"]组合选择器:tag.class#id伪类选择器:tag:nth-child(n)HTMLCSS课堂讨论(5)HTMLCSSHTML(40)复习导入(5)BeautifulSoupHTMLCSS理论讲解(10)selectselectCSSHTMLselectPythonsoup.select(selector)参数说明:selector:CSS示例:查找特定标签selectHTMLPythontitles=soup.select('title')print(titles[0].text)实践操作(20)任务:查找标题selectPythontitles=soup.select('title')print("Title:",titles[0].text)学生练习查找标题标签。任务:查找链接selectPythonlinks=soup.select('a')forlinkinlinks:print("Link:",link['href'])href课堂小结(5)selectselectCSSHTML第三部分:select函数的高级用法(40分钟)复习导入(5)selectselect理论讲解(10)使用类选择器o HTMLPythonelements=soup.select('.link')o 介绍如何使用类选择器查找具有特定类的元素。IDo IDHTMLPythonelement=soup.select('#unique-id')o IDID使用属性选择器o HTMLPythonelements=soup.select('a[href="https://"]')o 介绍如何使用属性选择器查找具有特定属性的元素。组合选择器o HTMLPythonelements=soup.select('div.containerp')o 介绍如何使用组合选择器查找嵌套的元素。实践操作(20)任务:查找特定类的元素o selectPythonelements=soup.select('.link')forelementinelements:print("Element:",element)o 学生练习查找具有特定类的元素。IDo selectIDPythonelement=soup.select('#unique-id')print("Element:",element[0])o ID任务:查找特定属性的元素selectPythonelements=soup.select('a[href="https://"]')forelementinelements:print("Element:",element['href'])学生练习查找具有特定属性的元素。任务:组合选择器教师演示如何使用组合选择器查找嵌套的元素:Pythonelements=soup.select('div.containerp')forelementinelements:print("Element:",element.text)学生练习使用组合选择器查找嵌套的元素。课堂小结(5)selectIDselect)复习导入(5)selectselect理论讲解(10)综合案例分析HTMLselect常见问题及解决方案selectHTMLfind课后作业:正则表达式爬取外汇网站数据(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元2.3BeautifulSoup高级查找周次7时数4授课班级教学目标知识目标BeautifulSoupfind_all、select、find_next、find_previous等。CSSBeautifulSoup技能目标BeautifulSoupHTML掌握如何提取元素的文本内容、属性值以及子元素。HTML情感目标Web引导学生理解数据提取在实际应用中的重要性和复杂性。教学重点:BeautifulSoupCSSselect教学难点CSSHTMLCSS实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:BeautifulSoup高级查找方法概述(30分钟)导入新课(5)HTMLBeautifulSoupfind_all、select、find_next、find_previous等。HTML理论讲解(20)find_allfind_allfind_allPythonsoup.find_all(name,attrs,recursive,text,limit,**kwargs)参数说明:name:标签名称。attrs:属性字典。recursive:是否递归查找。text:查找文本内容。limit:限制返回的元素数量。selectselectCSSselectPythonsoup.select(selector)参数说明:selector:CSS树形结构导航BeautifulSoup如.contents、.children、.descendants、.parent、.parents等。动态内容处理HTMLJavaScript课堂讨论(5)find_allselect引导学生思考如何选择合适的查找方法。第二部分:find_all(40)复习导入(5)find_allfind_all理论讲解(10)使用属性查找HTMLPythonelements=soup.find_all('a',attrs={'class':'link'})o attrs使用文本内容查找HTMLPythonelements=soup.find_all(text='Link')text组合查找讲解如何结合标签名、属性和文本内容进行组合查找:Pythonelements=soup.find_all('a',text='Link',attrs={'class':'link'})实践操作(20)任务:查找特定属性的元素find_allPythonelements=soup.find_all('a',attrs={'class':'link'})forelementinelements:print("Element:",element)学生练习查找具有特定属性的元素。任务:查找特定文本的元素find_allPythonelements=soup.find_all(text='Link')forelementinelements:print("Element:",element)学生练习查找包含特定文本的元素。任务:组合查找教师演示如何结合标签名、属性和文本内容进行组合查找:Pythonelements=soup.find_all('a',text='Link',attrs={'class':'link'})forelementinelements:print("Element:",element)学生练习组合查找。课堂小结(5)find_allfind_all(40)复习导入(5)selectselect理论讲解(10)CSSCSSHTMLPythonelements=soup.select('a.link')o 介绍如何使用类选择器、ID嵌套选择器HTMLPythonelements=soup.select('div.containerp')介绍如何使用嵌套选择器查找嵌套的元素。伪类选择器HTMLPythonelements=soup.select('p:nth-child(2)')介绍如何使用伪类选择器查找特定位置的元素。实践操作(20)任务:查找特定类的元素selectPythonelements=soup.select('a.link')forelementinelements:print("Element:",element)学生练习查找具有特定类的元素。任务:查找嵌套的元素selectPythonelements=soup.select('div.containerp')forelementinelements:print("Element:",element.text)学生练习查找嵌套的元素。Python

任务:使用伪类选择器教师演示如何使用伪类选择器查找特定位置的元素:elements=soup.select('p:nth-child(2)')forelementinelements:print("Element:",element.text)o 学生练习使用伪类选择器查找特定位置的元素。课堂小结(5)selectCSSselect)复习导入(5)find_allselectfind_allselect理论讲解(10)综合案例分析HTMLfind_allselect课后作业:正则表达式爬取外汇网站数据(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元2.4BeautifulSoup爬取名人名言数据周次8时数4授课班级教学目标知识目标了解网络爬虫的基本概念和用途。requestsHTTPBeautifulSoupHTMLHTML技能目标requestsBeautifulSoupHTMLCSSBeautifulSoup能够将爬取的数据保存到本地文件。情感目标Web引导学生理解爬虫的合法性和道德规范。教学重点:requestsBeautifulSoupHTMLCSSBeautifulSoup教学难点CSSHTMLCSS实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:网络爬虫概述(30分钟)导入新课(5)问题引入:讨论如何从网页中提取数据,引出网络爬虫的概念。引出主题:介绍网络爬虫的作用和应用场景。/网站展示爬虫的功能。理论讲解(20)网络爬虫的基本概念讲解网络爬虫的定义:自动从互联网上抓取数据的程序。介绍爬虫的应用场景,如数据挖掘、搜索引擎、信息监测等。HTTPHTTPHTTPGET、POSTHTMLHTMLHTML课堂讨论(5)提问学生关于网络爬虫的基本概念和应用场景。引导学生思考爬虫的合法性和道德规范。requests(40)复习导入(5)HTTPHTTP理论讲解(10)requestsrequestsHTTPrequestsbashpipinstallrequestsrequests.get()方法的基本用法:Pythonimportrequestsresponse=requests.get('http:///')print(response.text)实践操作(20)任务:获取网页内容requests.get()方法获取/网站的内容:Pythonimportrequestsurl='/'response=requests.get(url)print(response.text)o 学生练习获取网页内容。任务:检查响应状态码教师演示如何检查响应状态码:Pythonprint(response.status_code)学生练习检查响应状态码。课堂小结(5)requests强调检查响应状态码的重要性。第三部分:使用BeautifulSoup解析HTML文档(40分钟)复习导入(5)requests提问学生关于获取网页内容的方法。理论讲解(10)BeautifulSoupBeautifulSoupHTMLBeautifulSoupbashpipinstallbeautifulsoup4BeautifulSoupPythonfrombs4importBeautifulSoupsoup=BeautifulSoup(response.text,'html.parser')findfind_allfindfind_allPythontitle=soup.find('title')print(title.text)quotes=soup.find_all('span',class_='text')forquoteinquotes:print(quote.text)实践操作(20)任务:提取标题教师演示如何提取网页标题:Pythontitle=soup.find('title')print("Title:",title.text)学生练习提取标题。任务:提取所有引用教师演示如何提取所有引用:Pythonquotes=soup.find_all('span',class_='text')forquoteinquotes:print("Quote:",quote.text)学生练习提取所有引用。课堂小结(5)BeautifulSoupfindfind_all)复习导入(5)requestsBeautifulSoup提问学生关于提取网页标题和引用的方法。理论讲解(10)综合案例分析介绍一个实际的爬虫案例,如爬取/网站的所有引用和作者。requestsBeautifulSoup数据保存讲解如何将爬取的数据保存到本地文件:Pythonwithopen('quotes.txt','w',encoding='utf-8')asfile:forquoteinquotes:file.write(quote.text+'\n')综合实践(20)任务:完成爬虫项目requestsBeautifulSoup/网站的所有引用和作者,并将数据保存到本地文件。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的爬虫项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:网络爬虫的基本概念、requestsBeautifulSoup库的使用方法、数据保存。强调爬虫的合法性和道德规范,引导学生合理使用爬虫技术。课后作业:/网站的所有引用和作者,并将数据保存到本地文件。500(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元3.1xpath周次9时数4授课班级教学目标知识目标XPathlxmlHTMLXPathHTML技能目标requestslxmlHTMLXPathHTML能够将爬取的数据保存到本地文件。情感目标Web引导学生理解爬虫的合法性和道德规范。教学重点:XPathlxmlXPathHTML教学难点XPathXPathHTML实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:XPath概述(30分钟)导入新课(5)XPathXPathHTMLXMLHTMLXPath理论讲解(20)XPathXPathHTMLXMLXPath/、//、.、..、@等。XPathXPath/:根节点。//:当前节点选择文档中的节点,而不考虑它们的位置。.:当前节点。..:父节点。@:选取属性。HTMLXPathHTML<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>XPath//title:选择<title>标签。//a[@class='linkclass="link"属性的<a>标签。//p/text():选择<p>标签的文本内容。课堂讨论(5)XPathXPath第二部分:使用lxml库解析HTML文档(40分钟)复习导入(5)XPathXPath理论讲解(10)lxmllxmlHTMLXMLXPath。lxmlbashpipinstalllxmllxmlPythonfromlxmlimportetreehtml_doc="""<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>"""tree=etree.HTML(html_doc)实践操作(20)HTMLlxmlHTMLPythonfromlxmlimportetreehtml_doc="""<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>"""tree=etree.HTML(html_doc)HTMLXPathXPathPythontitle=tree.xpath('//title/text()')print("Title:",title[0])links=tree.xpath('//a[@class="link"]/@href')print("Link:",links[0])XPath课堂小结(5)lxmlXPathHTML(40)复习导入(5)lxmlXPath理论讲解(10)XPathXPathcontains(@attributevalue'):选择包含特定属性值的元素。starts-with(@attributevalue'):选择属性值以特定值开头的元素。following-sibling:::选择当前节点之后的所有同级节点。preceding-sibling:::选择当前节点之前的所有同级节点。HTMLXPathHTML<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a><divclass="container"><p>Anotherparagraph.</p></div></body></html>XPath//a[contains(@class,'link')]:选择包含class="link"的<a>标签。//p[starts-with(textThis')]:选择文本内容以"This"开头的<p>标签。//h1/following-sibling::p:选择<h1>标签之后的所有<p>标签。实践操作(20)XPathXPathPythonlinks=tree.xpath('//a[contains(@class,"link")]/@href')print("Link:",links[0])paragraphs=tree.xpath('//p[starts-with(text(),"This")]/text()')print("Paragraph:",paragraphs[0])XPath任务:查找同级节点教师演示如何查找同级节点:Pythonfollowing_paragraphs=tree.xpath('//h1/following-sibling::p/text()')print("FollowingParagraphs:",following_paragraphs)学生练习查找同级节点。课堂小结(5)XPathcontains、starts-with、following-siblingXPathHTML)复习导入(5)XPathXPath理论讲解(10)综合案例分析HTML/网站的引用和作者。XPath常见问题及解决方案XPathHTMLXPath表达式等。综合实践(20)任务:完成爬虫项目requestslxml/网站的所有引用和作者,并将数据保存到本地文件。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的爬虫项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:XPathlxml强调爬虫的合法性和道德规范,引导学生合理使用爬虫技术。课后作业:/网站的所有引用和作者,并将数据保存到本地文件。XPath500(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元3.2xpath周次10时数4授课班级教学目标知识目标XPathXPathHTMLXPathHTML技能目标lxmlHTMLXPathHTML学会将提取的数据保存到本地文件。情感目标Web引导学生理解数据提取在实际应用中的重要性。教学重点:XPathlxmlXPathHTML教学难点XPathXPathHTML实验仪器及教具:计算机、因特网教学过程备注教学过程第一部分:XPath概述(30分钟)导入新课(5)XPathXPathHTMLXMLHTMLXPath理论讲解(20)XPathXPathHTMLXMLXPath/、//、.、..、@等。XPathXPath/:根节点。//:当前节点选择文档中的节点,而不考虑它们的位置。.:当前节点。..:父节点。@:选取属性。HTMLXPathHTML<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>XPath//title:选择<title>标签。//a[@class='linkclass="link"属性的<a>标签。//p/text():选择<p>标签的文本内容。课堂讨论(5)XPathXPath第二部分:使用lxml库解析HTML文档(40分钟)复习导入(5)XPathXPath理论讲解(10)lxmllxmlHTMLXMLXPath。lxmlbashpipinstalllxmllxmlPythonfromlxmlimportetreehtml_doc="""<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>"""tree=etree.HTML(html_doc)实践操作(20)HTMLlxmlHTMLPythonfromlxmlimportetreehtml_doc="""<html><head><title>ExamplePage</title></head><body><h1>Welcome</h1><p>Thisisanexampleparagraph.</p><ahref="https://www."class="link">Link</a></body></html>"""tree=etree.HTML(html_doc)o HTMLXPatho XPathPythontitle=tree.xpath('//title/text()')print("Title:",title[0])links=tree.xpath('//a[@class="link"]/@href')print("Link:",links[0])o XPath课堂小结(5)lxmlXPathHTML(40)复习导入(5)lxmlXPath理论讲解(10)查找元素属性XPathPythonlinks=tree.xpath('//a[@class="link"]/@href')o 介绍如何使用@符号访问元素的属性。查找元素的文本值XPathPythonparagraphs=tree.xpath('//p/text()')text()函数提取元素的文本内容。组合使用讲解如何结合属性和文本值进行查找:Pythonelements=tree.xpath('//a[@class="link"]/text()')实践操作(20)任务:查找元素属性教师演示如何查找元素的属性:Pythonlinks=tree.xpath('//a[@class="link"]/@href')print("Link:",links[0])学生练习查找元素的属性。任务:查找元素的文本值教师演示如何查找元素的文本值:Pythonparagraphs=tree.xpath('//p/text()')print("Paragraph:",paragraphs[0])学生练习查找元素的文本值。任务:组合使用教师演示如何结合属性和文本值进行查找:Pythonelements=tree.xpath('//a[@class="link"]/text()')print("Element:",elements[0])学生练习组合使用属性和文本值。课堂小结(5)XPathXPathHTML)复习导入(5)XPathXPath理论讲解(10)综合案例分析HTML/网站的引用和作者。XPath常见问题及解决方案XPathHTMLXPath表达式等。综合实践(20)任务:完成爬虫项目requestslxml/网站的所有引用和作者,并将数据保存到本地文件。学生分组完成任务,教师巡视指导。任务:展示与分享每个小组展示自己的爬虫项目,分享实现过程和遇到的问每个小组展示自己的爬虫项目,分享实现过程和遇到的问题。教师对学生的项目进行点评,指出优点和不足。课堂小结(5)总结本节课的主要内容:XPathlxml强调爬虫的合法性和道德规范,引导学生合理使用爬虫技术。课后作业:/网站的所有引用和作者,并将数据保存到本地文件。XPath500(以下内容为选填,供线上课程及线上线下混合式课程填报)教学资源列表与访问路径备注中国大学MOOC网站:https:///course/ZIIT-1002925008https:///course/ZIIT-1002924007在线教学过程(学生自主学习指引)学生在讨论区提问教师在讨论区回答学生提交作业,讲师讲评在线辅导与答疑安排学生观看网络视频教师在线回答问题线上作业:复习本次课程内容预习下次课程内容教学单元3.3xpath周次11时数4授课班级教学目标知识目标XPathXPathHTMLHTML技能目标requestslxmlHTML学会将爬取的数据保存到本地文件(CSVExcel。情感目标Web引导学生理解爬虫的合法性和道德规范。教学重点:XPathrequestslxmlHTML提取天气预报数据并保存到本地文件。教学难点XPathXPathHTMLHTML实验仪器及教具:计算机、因特网教学过程备注第一部分:XPath与lxml库概述(30分钟)导入新课(5)XPathXPathHTMLXMLHTMLXPath理论讲解(20)XPathXPathHTMLXMLXPath/、//、.、..、@等。XPathXPath/:根节点。.:当前节点。..:父节点。@:选取属性。HTMLXPathHTML<html>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论