版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成果形式:实践报告成果名称:关于python网络爬虫的实现关于python网络爬虫的实现的实训心得实践目的1.知道爬虫的定义:抓取网站或者应用的内容,提取实用的价值。模仿用户在浏览器或app应用上的操作,实现自动化。2.学习python爬虫的构架和流程:经过URL管理器,让待爬取的url集合和已爬取的url汇总,再传递待爬取的url给网页下载器;再通过网页下载器,爬取url对应网页,存储为字符串,传递给网页解析器;通过网页解析器提取存储信息。3.学习通过写代码实际操作实现phthon爬虫二、实践内容1.项目的分析1.解释什么是爬虫,并举例:2.学会使用火狐浏览器开发者工具2.项目的设计1.写一个简单的html网页2.查看写出来的网页3.项目的实现(代码)1.输入登录名2在写出的数组值后追加元素3计算一组数组中元素22出现的次数4.项目使用说明实践过程项目的分析1.解释爬虫,并举例:简单的爬虫就是移用模块,利用函数。get函数从给出的URL中得到数据,然后打印出状态码和获取内容。注意:.text对应的是Unicode类型,.content对应的是bytes型。当需要的数据是文本时,用.text,当需要下载图片时,用.content,.text返回的值与.content的值有所不同如图所示:当我们准备大量,高频率访问网站时,特别是访问的还是类似于京东这样的商业网站,不能只是用个get加个url,这样做是无效的,得不到网站数据的,需要进一步输入相关代码,才能爬取京东网站的数据。2.学会通过火狐浏览器开发者工具爬取一个浏览器。需要用到火狐浏览器开发者工具,打开火狐浏览器按F12!第一步输入网址,然后按F12,找到网络这一栏。它会提示重新载入,那就再按一下F5,再重新载入,如图所示。注意以下几栏。然后找到并点开我们需要的,也就是第一个,如图示:这时页面上就会显示相应的信息。包括:消息头,Cookie,参数,响应,耗时,仓库追踪。2.项目的设计1.写一个简单的html网页<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>数学类1701尹春梅</title>
</head>
<body>
<ahref="/xhtml/">统计学院</a>
<buttontype="submit">提交</button>
</body>
</html>运行结果:2.Python爬虫架构由调度器、URL管理器、网页下载器、网页解析器、应用程序组成。调度器:负责调度URL管理器、下载器、解析器之间的工作,让程序平稳运行。URL管理器:实现待爬取的URL和已爬取的URL地址的收集,经过内存、数据库、缓存数据库来完成收集。网页下载器:通过传入URL地址来下载网页,将网页转换成一个字符串,网页下载器包括需要登录、代理、和cookie,requests网页解析器:对一个已经完成的网页字符串进行解析,提取出符合要求的信息,或者根据DOM树的解析方法来解析。应用程序:提取的网页中的各类数据组成的一个程序。代码如下:fromurllibimportrequest,parse
fromhttpimportcookiejar
ur1='/translate'
form_data={}
data=parse.urlencode(form_data).encode('utf-8')
headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.170Safari/537.36'}
req=request.Request(ur1,data=data,headers=headers)
cookie=cookiejar.CookieJar()
handler=request.HTTPCookieProcessor(cookie)
opener=request.build_opener(handler)
responce=opener.open(req)
html=responce.read().decode()
print(html)、3.项目的实现(代码)1.输入登录名:n=1
whilen<4:
username=input("请输入用户名:")
password=input("请输入密码:")
ifusername=="尹春梅"andpassword=="1704970102":
print("登录成功")
n=5
else:
ifn==3:
print("密码错误")
n=5
else:
n=n+1结果:2在下列数组值后追加元素L1=[1,2,3,22,4,]
L1.append(5)
L1.append("caijing")
L1.append([1100,0011])
print(l1)结果:3计算下列数组中元素22出现的次数li=[11,22,33,22,44,5,'alex',[1234,1234]]
c=li.count(22)
print(c)结果:F:\programdata\Anaconda3\python.exeC:/Users/微软中国/PycharmProjects/untitled/jjj.py2Processfinishedwithexitcode04.项目使用说明第一步:抓取网页先随机选取一些URL,将选取得到的URL放入待抓取URL队列中,取出待抓取URL,通过解析得到主机IP,下载URL所对应的相关网页,实现一次循环。之后通过新网站向搜索引擎提交网址在其他网站上设置新网站外链搜索引擎和DNS解析服务商,这样就实现了抓取网页。第二步:数据存储将数据存入原始页面数据库。页面数据与用户浏览器得到的HTML完全一样。第三步:预处理对爬虫抓取回来的页面进行预处理。提取文字中文分词消除噪音索引处理链接关系计算特殊文件处理.第四步:提供检索服务,网站排名为用户提供关键字搜索服务,也就是用户输入一个词语,就会联想到相似的语句,再将用户搜索得到的信息展现给用户。同时会根据页面的链接的访问量排名来进行网站排名,排名值高的网站在搜索结果中会排名较前。四、实践体会通过两周的学习,学习了python,让我会写一些简单代码,对爬虫有了一定的学习,学习心得如下:很感谢学校安排了两周关于python的学习,让我对它有了许多了解,也对之后继续学习它产生了浓烈的兴趣。在没有接触它之前,从学长学姐那里听说一些关于python的信息,感觉它是一门很难的课程,担心自己学不好它。后来上课的时候发现,老师讲的很清楚,也很生动,只要静下心来学,就一定可以的。开始上课的第一天,老师就举例子给我们解释了什么是phthon,还布置了作业,让我们在课后也积极搜索吸收关于python的知识。第一天的学习,让我了解到python的运行过程并不复杂,代码在运行的过程中由CPU进行编译,一边编译一边执行脚本语言,不像编译型语言那样需要先将代码编译成二进制才能运行。像这样专业化的术语知识,开拓了我平时的知识面,因为平时接触最多的是数学公式和定理,正好通过这次学习,能够丰富自己其他方面的知识,第一天对自己之后的学习充满期待,希望自己之后能熟练运用python来解决一些实际问题。虽然明白学习一门新的课程会有许多挑战,但是没想到挑战确实挺多的,首先是对于一些新鲜知识的理解与吸收,例如老师提到的程序块,我总是容易将它与程序联系起来,还很疑惑二者到底有什么区别,程序块是怎么定义的。后来在上课间隙,通过提问老师,让我的问题得到了解答:程序块是根据代码的缩进来表示程序的块和代码的层次,而程序通过一个逻辑行单位进行执行,一个逻辑行又可以由多个物理行组成,一个物理行又可以分成多个逻辑行,我们通过“;”来分隔同一物理行的多个逻辑行。通过老师的解答,自己再多加以理解,类似于这样的专业知识就清楚明白多了。这是刚开始学习所面对的知识点上的困惑,在之后的学习时间,老师着重讲解了如何写简单的网页,如何实现一些简单的项目,如何实现爬取数据等。正如常言道,学习了理论知识之后,应该把它运用到生活实践中,就是白学了。所以在经历了两天关于python的理论知识的学习后,老师开始带领我们在自己的电脑上实际操作。先用老师发的程序安装包在各自的电脑上安装了程序后,老师开始教学。老师的教学也照顾到了每位同学(因为上课人数较多,有时候去晚了可能就会坐在后排,听不清老师的讲解,但是老师每次都会努力提高音量,并且一步一步的当场在电脑上输入代码,让同学们也跟着他同步输入,助教老师也会在教室里走动,随时帮助输入错误的同学),老师讲解一遍之后,会留给我们一些时间,让我们再试一遍,只有确保了大家基本上都会这一个代码后,老师才接着讲后来的代码。下课后。老师会在我们的学习群里发放当天的课堂重点笔记,以及上课我们所写的所有代码,还会布置相应的题目。正是老师这样细致的教学,让我们能及时的发现问题并解决问题。在课后时间还有充足的时间来尝试做题,通过做题加深上课的印象,将上课所学的,继续延伸拓展。这样的学习方法,真的是帮助我能在短期的时间内吸收新的知识,很感谢老师的耐心帮助。输入代码是一件很严谨的事情,有时候输错一个符号或者没有区分大小写,输出来的代码都是不能运行的。而我又是一个比较粗心的人,所以特别容易输错了,印象最深的是在要求写一个代码,代码要求呈现的结果是一个登录的网页,登陆网页要包含许多中文信息。这也就意味着在输入的过程中要随时注意切换中英文和大小写。我小心翼翼的输入每一个符号,还要随时注意切换中英文,大小写。其实切换中英文还是很明显能看出不同的,但是在输入标点时,就很容易出错了。当我输入一个汉字词语时,需要用符号将输入的汉字词语引用出来,而这时就需要用英文状态下的双引号,稍不注意就输错了。当我好不容易输完所有字符,却运行不了自己期待的页面时,就赶紧去查看到底是那离输错了,但是从头到尾检查下来也找不到问题出在哪里了。最后,通过举手寻求老师的帮助后才发现是我一个标点符号输错了,应该是英文状态下的符号,被我输成中文状态下了,所以是肯定运行不了。通过这件事情,让我明白在之后学习的过程中一定要耐心细致,正如不积硅步,无以至千里。只有把每一步都做好了,才可能会实现最后的结果。这也是这次学习带给我的最大的收获:在互联网高速发展的现在,我们越来越追求速度的提升,而忽略了品质结果,一味的追求快,所获得的结果是不言而喻的。万事必做于细,才能做到万无一失,精益求精就一定可以取得好的成果。当我一步一步慢慢的认真的输入字符,在一次性输入运行成功的时候,心情非常激动,而实际上,像这样一次性实现代码的运行比一次又一次调试修改节省了更多的时间,也养成了自己耐心细致的品质。我也相信在之后的其他学习生活中,我会继续秉承这样的态度去做好每件事情,特别是在学习数学的过程中,这是非常实用的,稍不注意就可能算错一道习题而陷入死循环的状况在之后应该也会大幅度下降的。耐心细致只是一方面,找对学习的方法也很重要。知识点方面,多花点时间还是可以理解清楚的,但是在写代码,特别是自己实际操作解决问题时,还是会遇到有许多的问题。比如在一道要求输入名字的题目中,我在思考能不能通过函数来判断名字是否输入正确,但是当我输入函数后,发现得不到我需要的结果,通过查询资料,反复修改实验多次也没办法。后来在上课的时候,我把自己写的代码请教老师,老师看了一会儿就指出了问题的根本:变量在最开始输入夫人时候是没有类型的,在运行的时候才需要去确定数据的类型。此外,变量没有固定类型,前一次赋值的时候对应的类型就是下一次输入时的类型。变量除了可以是固态的,也可以是动态的,随着输入的变化而变化。另外,老师还提醒我我输入的代码中忽视了函数定义中没有返回值的说明。如果没有返回值的话,运行代码的时候会默认返回,如果显示了其他语句,则返回正确的值。经过老师的查看,找出了问题的根本是我把变量定义错了,函数使用的也不对,应该用表示选择的if语句。此外,老师还帮我把代码优化,删除了不必要的字符串,让代码看起来思路更清楚,更明白。也是通过这次书写代码时所遇到的问题,让我清楚明白了学习不是一蹴而就的,要脚踏实地,要多问问题,才能发现问题,解决问题。其实在之前的学习生活中,我也遇到了许多问题,但是因为性格等多方面原因,不愿意去寻求他人帮助,喜欢一个人独自解决,但显然这是不对的,因为这些堆积的问题久而久之没有及时的得到解决,就变成我知识点的漏洞,只会让我学到的东西变得越来越少,越来越片面。也是因为这次机会,让我敢于向老师寻求解决问题的办法。其实踏出这一步之后,豁然开朗。不仅是这次写错代码能得到改正,也是帮助我养成问题的习惯。当然这种寻求帮助应当是建立在自己努力修改尝试后的,而不是一遇到问题就希望得到别人的帮助,这样效果也是甚微的。三人行,必有我师焉。不问问题,不会问问题,显然是不对的,善学,善问,才能促使我们不断进步。在之后的学习生活中,我也应当像这次一样,在遇到实在解决不了的问题时,敢于向朋友,老师寻求帮助,这也是让我们一起共同进步的好方法。学习的方法有很多,还有一点很重要的就是一定要做好笔记。好记性不如烂笔头是我们从一开始接触学习就知道的道理。特别是在这次学习过程中,做好笔
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产中介代理协议样本
- 土石方工程分包合同文本
- 合作合同协议书格式
- 茶叶艺术交流合同
- 招标文件合同文件范本格式模板
- 预制箱梁工程劳务分包的合同纠纷处理
- 海鲜买卖销售购销协议
- 铁丝网购销合同签订
- 建筑用沙协议
- 解析采购订单与采购合同的差异
- 人教版小学语文一年级单元测试题-全册
- 2024-2030年中国PQQ行业市场发展分析及前景趋势与投资研究报告
- 2024年新青岛版四年级上册科学全册知识点六三制
- 注册消防工程师案例分析真题(完整)
- 实验室经费管理制度
- 2024-2030年中国数字商务行业市场发展趋势与前景展望战略分析报告
- 烟草专卖行政执法中存在的问题及对策研究
- 二手车交易定金合同范本5篇
- 《乌鲁木齐市国土空间总体规划(2021-2035年)》
- 无人机应用技术专业申报表
- 《护理学基础》《健康评估》临床见习手册
评论
0/150
提交评论