还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
关于python网络爬虫的实现
一、实践目的
1.提供机会学习python是为了与当下接轨,让当代大学生提前接触大数据,学习一些简单的编程技巧,为毕业就业提供更多的方向
2.学习知识接触到目前并未涉及的大数据,学习更多与计算机有关的知识,开阔视野,提高自身素养
二、实践内容
1.项目的分析1解释一下爬虫举个实例.import requestsfromIxml importhtmlurl二.
163.com/,#需要爬取的网址page=requests.Session.geturltree=html.fromstringpage,textresult=tree.xpath C//tr//a/createlframe#需要获得的数据printresult2把网页界面先调试出来.form name二〃user action=〃#〃method二〃get〃table align二〃center”〉trtd姓名/tdtdinput type=〃text“name=〃username”//td/trtr〈td学号〈/tdtdinput type=password/〉/td/trtr〈td性别/tdtd
5.实践中我么还了解了几个很好用的方式去编程,只是在live里没有了解过使用len来了解我们想要的字符的长度range数字,是拿来编写从0为起始值直到输入的字符为一组连绵的数字,比如输入的是15,会生成0到14的15个数range len,这两个的缔结使用可以非常好的拿来当做一组数字的检索,来了解数字里的定位,十分方便快捷比如在下列数组值li=[1,2,3,22,4]最后追加元素5,“caijing,[1100,0011]三个元素,打印输出当前数组li=[1,2,3,22,4]li.append5li.appendcaijingli.append[1100,11]print li卸口C:\Users\M cho\PychaimProjects\unti tled\venv\Scnpts\python.exe*C:/Users/M cho/PycharmProjects/unti tied/追加.py*[1,2,3,22,4,5,,caijing,[1100,11]]Process finishedwith exitcode0[11,22,33,22,44,5,alex,[1234,2323]了解元素22出来的次数并且进行印刷li=[ll,22,33,22,44,5/alex,[1234,2323]]v=li.count22print vC:\Users\M cho\PychaimProjects\iintitled\venv\Scripts\python.exe*C:/Users/M cho/PycharmProjects/untitled/次数.py”2Process finishedwith exitcode
06.在写for循环时,要十分留意首行缩进,普遍是缩进4个空格字符串,由于当嵌套的循环过多时,非常容易出错,程序没办法识别出谁是谁的循环体for我希望了解为遍历,就是完整的看所有数据例如11=[11,22,33,55,99],12=[23,22,33,44]判别11外面存在,12外面不存在的元素,印刷出来.而后判别12外面存在,1外面不输出存在的元素,打印输出.12二[23,22,33,44]for i in11:if inot in12:print ifor iin12:if inot in11:print i*C:\Users\M cho\PychaiinProjects\mtitled\venv\Scripts\python.exe一二*C:/Users/MC:\Users\M cho\PycharniProjects\tuititled\venv\Scripts\pthon.exe**C:/Users/M cho/PycharmProjects/untitled/登陆.py”你的名字bai你的学号1100登陆失败你的名字力u二你的学号1234Q登陆失败你的名字上回而你的学号1100登陆成功cho/Pycha:1155992344Process finishedwith exitcode
07.while才是真正名义上的循环,只有满足条件就会反复前进,因而用while时一定要保障有能够完结循环的语句,比如说,用continue,break等,要不然程序就会没有止境的进行循环例如用户登陆(三次机会重试),示例(下图登录只有一次机会),登录的username二二“你的姓名,password==你的学号”i=lwhile i4:username二input“你的名字”password=input〃你的学号〃if username二二liu andpassword=1100”:print(〃登陆成功〃)else:print(〃登陆失败〃)i=i+l
8.range的特性是左闭右开的,比如,range(1,7),没学过的人会认为是生成1到7折七个数字,其实根据python左闭右开的这一特性,真正生成的是1到6这五个数字,所以切记,在切片时索引中是非常重要的9*9乘法表for iin range(1,10):for jin range1,i+1:print i,*,j,=,i*j,end=+..print C乘法表C:\Users\M cho\PychaimProjects\mt111ed\venv\Scripts\python.exe C:/Users/M cho/PycharmProjects/untitled/乘法表.py*2*12*2=43*1=33*2=63*3=91*1=14*1=44*2=84*3=124*4=16*1=55*2=105*3=1520*5=25*1=66*2=126*3=1824♦5=30*6=367*2=147*3=21*5=35*6=42*7=49*1=88*3=2432*5=40*6=48*7=568*8=64*1-99*2-189*3-2736*6-54*7=639*8-729*9-81Process finishedwith exitcode
09.编写和网页调试,例如form name二〃user action=〃#〃method二〃get〉table align=//center/ztrtd姓名/tdtdinput type=〃text“name=〃username”//td/trtrtd学号〈/tdtdinput type=〃password〃/〉/td/trtr〈td性别/tdtdinput type二〃radio“name二〃name”/〉男input type=radio name=namechecked二〃checked/〉女/td/trtrtd学院/tdtdselect〈option》西安财经大学〈/option》〈option〉西安交通大学〈/option》〈option西安工业大学〈/option〉option1232/option〈option〉西安工〈/opt ion〉/selectselect〈option〉数学〈/option〉〈option〉统计〈/option〉〈option〉会计〈/option〉/select/td/trtrtd爱好〈/tdtdinput type=〃checkbox“name=〃sport”checked二〃checked”/〉篮球input type二〃checkbox“name=〃basketball〃/》唱歌input type二〃checkbox“name=〃volleyball”/》打游戏/td/trtrtd邮箱/tdtdinput type=〃text“name=〃emaH”//td/trtrtd成绩〈/tdtdinput type二〃text“name=〃phone”//td/trtr〈td上传头像/tdtdinput type二〃file“name=〃file”//td/trtrtd个人简介〈/tdtdtextarea rows=〃15〃cols=〃50〃/textarea〉/td/trtrtd/tdtdinput type=button value=〃登录〃/〉交〃/input type二〃submit“name二〃tijiao〃value二〃提input type=reset“name=〃quxiao〃value二〃取消〃//td/tr/table/formitml谖泉界面.html xz
①file:〃/F:/html/登录界面.html姓名学号性别学院
10.python爬取网页爰好邮箱成绩上传1爬取程序头像爬取百度首页源代码来看上面的代码其实对于python爬虫来说,urllib是一个被十分看重的组成部分,它可以被用于非常方便的模拟浏览器来访问互联网,对于python爬虫来讲,urllib才更加是其中必不可少的一部分模块,它可以有效帮助我们方便地解决URL.2模拟浏览器爬取信息个人简介当在访问一些网站的时候,这些网站一般会用判断该访问有没有带有头文件来甄别该访问是否是爬虫,一次作为反爬取的一种方法先来看一下Chrome的头信息F12打开开发者模式Python中urllib中的request模块提供了模拟浏览器访问的功能,可以通过add_header key,value或者直接以参数的形式和URL一起请求访问,urllib.request.Requesturllib.request.Requesturl,data=None,headers={},originreqhost=None,unverifiable=False,method=None3爬虫利器Beautiful SoupBeautiful Soup是一个能够从HTML或XML文件中查找文件的Python数据库.它可以经过你想要的转换装置体现常用的文档栏目,寻找,修正文档的方法.,即可得到全部的文章题目,整体展现出代码和代码所表达的含义BeautifulSoup支持Python运行库中的HTML解析装置,还支持一些别的的解析装置,下表列出了主要的解析装置,以及它们的好与不好解析器使用方法优势劣势的内置标准库1Python Python
2.
7.3or标准库Python BeautifulSoupmarkup,parser讷行速度适中文档前的版本中23322容错能力强文档容错能力差BeautifulSoupmarkup,nlxmrIxml速度快文档容错能12需要安装语言库HTML C力强解析器「门BeautifulSoupmarkup,xml”Jxm ORBeautifulSoup^arkup,“xml”Ixml速度快唯一支持12解需要安装语言库XML C的解析html5Hb^u^ulSoupmarkup,html5hbXML析器4将爬取的信息存储到本地层好的容、昔性以浏12速度慢不依敏12之前咱们都是将爬取的数据间接打印到了管制台上,这样显然不利于我们对数据的剖析使用,览器的方式解析文档生3普第啰疗再造也不利于生活,所以如今就来看一下怎样将爬来的网页储存到当地硬盘359成格式的文档工二HTML51对.txt文件的操作读写文件是最常见的操作之一,python内置了读写文件的函数open openfile,mode=r,bufferings1,encoding=None,errors=None,newline=None,closefd=True,opener=None Openfileandreturna correspondingfile object.If thefile cannotbe opened,an OSErroris raised.其中相较于经常使用的参数为file和mode,参数file为文件的途径,参数mode为操作文件的方式读/写,函数的返回值为一个file对象,假设文件操作呈现异的话,则会抛出一个OSError还以简书首页文章标题为例,将爬取到的文章题目寄存到一个.txt文件中open中mode参数的意义见下表符号含义以只读模式打开文件(默认模式)T以只写的方式打开文件,如果文件存在的话会先删除再重新创建W以独占的方式打开文件,如果文件已经存在则错误‘X’以写的形式打开文件,若文件已存在,则以追加的方式写入a[二进制模式b文本模式(默认)T中更新文件(读/写)/微信号:九门男羽P2其中‘t为默认模式,相当于rt,标记可以叠加使用,像r+b别的,对文件操作肯定要注意的一点是翻开的文件一定要关闭,不然会占用相当大的计算机资源,所以对文件的操作一般推荐利用try:...finally:...的形式然而try.・・finally:...的模式会使代码显得相对与来说更加动乱,所幸python中的with语句能够帮咱们主动移用close()而不需要咱们写出来,所以,上面代码中的try:...finally:...可使用这边的with语句来替代效果是一样的,建议使用with语句经过这段时间的实践学习,我认识到python这门技术并没有想象中那么简单,不只是英文字母拼接成的代码,是一件值得研究的有趣的技术,在之后的学习中我应该会继续学习有关知识,将所学到的东西加以应用,我相信在未来,python一定会为我的工作和生活带来帮助,以上就是我参加暑期实践的心得及体会input type二〃radio“name=〃name”/男input type二〃radio“name=〃name”checked二〃checked/〉女/td/trtrtd学院/tdtdselect〈opt ion〉西安财经大学〈/opt ion〉〈option》西安交通大学〈/option》option西安工业大学〈/optionoption1232/option〈opt ion〉西安工〈/option〉/selectselect〈option〉数学〈/option〉〈option〉统计〈/option〉〈option〉会计〈/opt ion〉/select/td/trtrtd爱好〈/tdtdinput type=〃checkbox“name=〃sport”checked二〃checked〃/〉篮球input type二〃checkbox“name二〃basketball”/》唱歌input type二〃checkbox“name=〃voHeybaH/〉打游戏/td/trtrtd邮箱/tdtdinput type二〃text“name=〃email”//td/trtrtd成绩/tdtdinput type二〃text“name二〃phone”//td/trtrtd上传头像〈/tdtdinput type二〃file“name=〃file”//td/trtrtd个人简介/td〉tdtextarea rows=〃15〃cols=,z50///textarea/td/trtrtd/tdtdinput type二〃button value=〃登录〃/〉input type=〃submit“name=〃tijiao value=〃提交〃/input type二〃reset“name=〃quxiao value二〃取消〃//td/tr/table/formitml谖录界面.htmlX I-f-7i
①file:〃/登录界面.html⑪]☆姓名|刘雨萌学号|••••••••••性别O男◎女学院|西安财经大学数学F|爰好0篮球口唱歌口打游戏邮箱成绩上传头像浏览..・个人简介图表13)解释倒入的五个库和包导入网络进行下载import requests导入网络进行下载过程有报错异常,然后导入一个报错:from requests,exceptions importRequestException爬出来所有图片、文字存在这里:importre放信息数据的一个“池子”import jsonfrommultiprocessing importPool项目的设计
2.编写一个html网页html昭昭/title/head寒冰永不腐朽/body/html巳君已昭昭X+v
①-C file:///F:/html/
1.html寒冰永不腐朽图表2项目的实现代码
3.1使用while循环输入1234568910n=lwhile nll:if n=7:passelse:printnn=n+lprint-end-C:\Users\M cho\PychaimProjects\iuit111ed\venv\Scripts\prthon.exe**C:/Users/M cho/PycharmProjects/unti tied/循环.py*1图表32求1T00的所有数的和n=ls=0while n101:s=s+nn=n+lprint sC:\Users\M cho\PychaiinProjects\uiititled\venv\Scripts\python.exe-C:/Users/M cho/PycharmProjects/untitied/求和.py”5050Process finishedwith exitcode0图表43输出1-100内的所有奇数n二lwhile n101:temp=n%2if temp==0:passelse:printnn=n+1print-end-’636567弓69717375目血7981838587899193959799一一end一项目使用说明
4.Syumengmengjson经过这些天的课时,学到了如何实现网络爬虫,这次的项目是通过python在虾米音乐上抓取歌曲信息,包括歌曲的曲名,作曲人,作词人,评论网络爬虫是一个可以自助选取页面的程式,它为搜寻引擎并从互联网上下载网页信息,是搜寻引擎的一个组成部分网络爬虫是从一个或者许多初始网页的URL开始的,获得最初页面上的URL,在爬取页面的过程中,不断从这个页面上发现新的URL放入里面,一直爬取到满足系统的一定停止要求网络爬虫的任务流程比较烦琐,需要依据特殊的网页分析计算筛去与主题没有直接关系的链接,保留实用的链接再将它们放入守候抓取的URL队列之中然后,它会根据一定的搜索策略从行列中选择接下来需要抓取的网页URL,并重复以上过程,一直到达到系统要求的某一条件时结束除此之外,所有被爬虫抓取过的页面都将会被系统保存,并进行一定的分析、过滤,并创建索引,以此方便之后的查询和检索;对于爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出映射和命令
三、实践过程
1.前期准备下载及为之后的学习和实践提供工具,查找资料,大致了解Anaconda3PyCharm
2019.l python编程及网络爬虫
2.学习及实践首先进行了简单编程语句的学习,例如while语句,if语句等简单练习编写数字循环输出,特定字符输出,数字求和之后学习编写了一个简单的登陆界面和一个简单的html网页,初步接触网页编写第二周老师开始教授网络爬虫,在课堂上进行了一次爬取网页的实例,通过让我们总结课上讲的爬虫过程,可以更加了解爬虫,为之后实践打下基础最后老师留给我们三天的时间自己完成一个网络爬虫,在这个过程中给予我们指导和纠错当我们可以成功完成爬虫,这次暑期实践就结束了
四、实践体会进入大学的第二年暑假,实践周的任务是学习python爬虫,这是一个关于计算机语言的学习,在之前的两年时间我们接触过计算机基础和c语言,对计算机编程也有一定的了解,但是对于这次的主要学习任务爬虫,即对网页进行选取和爬取,内心是有有点期待的之前觉得程序员设计编辑网页很酷,在电脑上敲一敲就可以得到自己需要的信息,在开课之前我也期待着自己可以在短暂的15天中学习到python爬虫的知识6月24日的第一节课老师为我们讲解了python语言和其他计算机语言的区别,python语言被大家公认为是最简单易学的计算机语言,他更加大众,是可以免费使用的,适合初学者和一些对编程要求不高的人群,老师特地强调了python语言对字符串的操作特别灵活,方法也更加简单明了这周我们主体了解了Python的知识,简单理解了Python的基础语句及知识结构,之后我们学习了Python爬虫技术,这同样很吸引我,什么是Python爬虫技术呢Python网络爬虫,即网络蜘蛛,我们能够了解为一只在网络上搜索猎物的蜘蛛,互联网就像是一张蜘蛛网,而网络蜘蛛便是在这张网上搜索猎物的一只捕食者,一旦它发现数据,那么它就把他缠住收走假如它在爬取一个页面,在这个蛛网里他找到了一个路线,然后这个路线就是表示这个网页的链接,这样它就可以爬取一个蛛网上的信息经过实际将理论联络起来,为我们的基础打下良好的地基,提升搞清楚摆在我们面前的任务的能力,让毕业有备无患,且让自己能够顺利的不如社会,成为一个可用之才经过这次的实践,使我们提高了对知识的了解与应用,加快了对知识的吸收,十分全面地学习了Python语句的使用,把所学习到的东西,与实际问题相结合,能够使用计算机进行各种运算和解决问题,增强我们把问题化小的能力,并最终解决它们的技术要求,来提高我们的动手能力,加快对知识的吸收一开始,我们需要明白的是,编程的学习不是一下子就能学会的的,还需要为它发出我们的努力奋斗,也不能够光说不练,要全心全意的区学习如何使用它,不亲自使用它是体会不到它给我们带来的快乐,只有自己有过实践才会更加记忆犹新然后我给你们列出了这次实践所学习的一切方法和技术I.修正字符串大小写时经常我们会使用upper,lower,但他们有一个缺点就是会改变整个结构,另外有种叫title的方式,能够只改变首字母的拼写,十分好用元组111,〃你的名字名11,22,[33,44],True,33,44,打印输出索引为1位置的内容用切片切出0到2的位置.打印输出.然后用for循环迭代出里面的元素打印输出.tuple=lll,^r,11,22,[33,44],True,33,44printtuple[l]printtuple[0:2]v=foriin tuple:v+=str iprintv切片C:\Users\M cho\PychamiProjects\uiititled\venv\Scripts\python.exe C:/Users/M cho/PycharmProjects/untitied/切片.py*刘111,刘111111刘111刘11,22111刘11,22[33,44]111刘11,22[33,44]True111刘11,22[33,44]True33111刘11,22[33,44]True3344Process finishedwith exitcode02,列表本身是有顺序的,而且非常非常非常重要的一点,列表中的第一个数的顺序是“0”,索引是从0开始的获取当前值88索引位置,打印输出,并且将100插入到索引为3的位置,打印输出H=[11,21,32,23,45,89,78,1,3,5]li=[ll,32,45,89,78,1,3,5]v=li.index88print vII.insert3,100print liC:\Users\M cho\PycharrnProjects\uiititled\venv\Scripts\python.exe C:/Users/M cho/PycharmProjects/untitied/索弓I.py三6[11,22,33,100,22,44,99,88,1,2,5]Process finishedwith exitcode
03.修正表格时可以用,insert内容,位置进行修正在列表li=[〃你的学号〃,〃你的名字〃]在里面添加元组11,22,33,44打印输出,然后将列表转化成元组.打印输出.1;[〃31〃,刘〃]li.extendll,22,33,44print liprinttupleli转换元组三C:\Users\M cho\Pychai-mProjects\Lu-ititled\venv\Scripts\p}Tthon.exe*C:/Users/M cho/Pyi「
31、刘,11,22,33,44]「31,刘,11,22,33,44]Process finishedwith exitcode
04.删减表格的内容时,用del可以马上确定表格的位置进行删减,使用remove,会将表格里首次发现的内容进行删减,pop方法是删除尾部的数据,也能够当作是一次特别的提取,确定方位,例如pop,就能够爬取所有位置里我们所需要的数据简略列表中的指定值100,H=[11,22,33,22,44,99,88,100,1,2,5]打印输出,然后对之前未删除的当前列表进行翻转,打印输出结果li=[11,22,33,22,44,99,88,100,1,2,5]v=li.remove100printlili=[ll,22,33,22,44,99,88,100,1,2,5]u=li.reverseprint li*C:\Users\Mcho\PychaimPi-ojects\untitled\venv\Scripts\python.exe**C:/Users/Mcho/PychannProjects/untitied/翻转.py”[11,22,33,22,44,99,88,1,2,5][5,2,1,100,88,99,44,22,33,22,11]Process finishedwith exitcode0。
个人认证
优秀文档
获得点赞 0