解析网页结构及爬取数据_第1页
解析网页结构及爬取数据_第2页
解析网页结构及爬取数据_第3页
解析网页结构及爬取数据_第4页
全文预览已结束

下载本文档

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

文档简介

解析网页结构及爬取数据1-1-解析网页结构及爬取数据全文共4页,当前为第1页。解析网页结构及爬取数据全文共4页,当前为第1页。课题:项目4设计爬虫获取数据源第3部分解析网页结构及爬取数据课次:第12次教学目标及要求:(1)任务1解析网页结构(掌握)(2)任务2爬取数据(掌握)教学重点:(1)任务1解析网页结构(掌握)(2)任务2爬取数据(掌握)教学难点:(1)任务1解析网页结构(掌握)(2)任务2爬取数据(掌握)思政主题:教学步骤及内容:1.课程引入2.本次课学习内容、重难点及学习要求介绍(1)任务1解析网页结构(掌握)(2)任务2爬取数据(掌握)3.本次课的教学内容(1)任务1解析网页结构(掌握)爬虫分为两步走,首先要对你想要获取数据的目标网页进行解析,明确所要获取的数据以及目标网页的结构;其次,再进行数据的爬取。上一节,大家了解到了什么是网络爬虫和爬虫的一些基本知识。那么这一章就以爬取猫眼电影Top100为实例,先教大家如何解析网页。1.打开网页/board/4?offset=,如图所示2.点击鼠标右键选择审查元素,如图所示,就是网页的源代码,大家爬取数据,首先得先分析网页的结构,这就要根据网页源代码来。图片中用红色小方框圈起来的地方,是一个选择器,你点击它,然后在网页中选择你想要查看的地方,就会跳出相对应的源代码出来,是不是很方便。3.大家要明确爬取的元素是:排名、封面图片、影片名、主演、上映时间、评分。4.每一部电影信息都在<dd></dd>当中,如图所示。5.查看爬取元素的所在位置,如图所示。6.这样便完成了对要爬取元素的分析,下节开始准备爬取的工作。(2)任务2爬取数据(掌握)1.获取页面解析网页结构及爬取数据全文共4页,当前为第2页。解析网页结构及爬取数据全文共4页,当前为第2页。importrequestsfromrequests.exceptionsimportRequestException#一般写requests会加一层异常处理importre#获取页面defget_one_page(url):#定义一个方法,请求单页内容try:user_agent='Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.headers={"User-Agent":user_agent}#设置处理response=requests.get(url,headers=headers)ifresponse.status_code==200:#通过状态码判断response的返回结果,200表示成功returnresponse.textreturnNoneexceptRequestException:returnNone2.解析网页#解析网页defparse_one_page(html):pattern=pile('<dd>.*?board-index.*?>(\d+)</i>.*?src="(.*?)".*?name"><a'+'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'+'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.s)items=re.findall(pattern,html)#调用re的findall方法foriteminitems:#对信息进行格式化,遍历一下,形成字典类型yield{#利用yield把方法变为生成器,返回结果为字典的形式'排名':item[0],'封面图片':item[1],'影片名':item[2],'演员':item[3].strip()[3:],#strip方法把换行符去掉,[3:]为切片'上映时间':item[4].strip()[5:],解析网页结构及爬取数据全文共4页,当前为第3页。'评分解析网页结构及爬取数据全文共4页,当前为第3页。}3.将抓取的结果存入文件#将抓取的结果存入文件defwrite_to_file(content):withopen('result.txt','a',encoding='utf-8')asf:f.write(json.dumps(content,ensure_ascii=False)+'\n')#json.dumps:把content字典形式转为字符串形式f.close()4.调用方法#主要的调用方法defmain(offset):#定义一个main方法来调用get_one_page,把offset当成一个参数url='/board/4?offset='+str(offset)#把offset当成一个字符串传进来html=get_one_page(url)#返回结果用html来接收foriteminparse_one_page(html):#把每个电影的信息返回一下,变成一个生成器print(item)write_to_file(item)#调用write方法5.程序的入口#程序的入口if__name__=='__main__':#加一个if判断并调用main方法

温馨提示

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

评论

0/150

提交评论