当前位置: 首页 > 后端技术 > Python

毕业设计---爬虫简介

时间:2023-03-26 17:26:45 Python

爬虫是常用的,在毕业设计的数据收集阶段。很多同学问答,让学长写一篇讲解爬虫的文章。本文将描述和分析如何使用爬虫,并给出示例。所谓爬虫就是写代码从网页中爬取你想要的数据。代码的好坏决定了你能否准确的爬取到你想要的数据,以及你拿到数据后能否直观正确的进行分析。Python无疑是所有语言中最适合爬虫的。Python本身很简单,但是要真正用好它需要学习很多第三方库插件。例如matplotlib库是仿照matalab的一个强大的绘图库。可以用来绘制饼图、折线图、散点图等,甚至可以绘制3D图形,直观展示爬升数据。Python第三方库的安装可以手动安装,但是直接在命令行输入一行代码自动搜索资源并安装会更简单。而且它非常聪明,它可以识别你的电脑类型,并找到最合适的版本。pipinstall+自己需要的第三方库或者easyinstall+自己需要的第三方库这里推荐大家使用pip安装,因为pip可以安装也可以卸载,其他方式只能安装。如果遇到要使用新版本的第三方库,使用pip的优势就会显现出来。交互界面【图片上传失败...(image-7b940a-1604630578613)】defweb():root=Tk()Label(root,text='请输入网址').grid(row=0,column=0)#对Label内容进行表格布局Label(root,text='PleaseenterUser-Agent:').grid(row=1,column=0)v1=StringVar()#设置变量v2=StringVar()e1=entry(root,textvariable=v1)#用来存放输入的内容e2=Entry(root,textvariable=v2)e1.grid(row=0,column=1,padx=10,pady=5)#进行表格布局e2.grid(row=1,column=1,padx=10,pady=5)url=e1.get()#将从输入框获取的URL赋值给urlhead=e2.get()爬虫部分使用爬虫爬取任何随机博客并将其所有文章标记化。为了提取关键词,分析博主使用当前网络流行相关词的频率。[图片上传失败...(image-75c9f8-1604630578613)]先写一个函数download()获取url,然后写一个函数parse_descrtion()解析从url中获取的html,最后结巴分词。defdownload(url):#通过给定的url数据ifurlisNone:returnNonetry:response=requests.get(url,headers={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_11_6)AppleWebKit/537.36(KHTML,如Gecko)Chrome/53.0.2785.143Safari/537.36',})if(response.status_code==200):returnresponse.contentreturnNoneexcept:returnNonedefparse_descrtion(html):如果html为None:returnNonesoup=BeautifulSoup(html,"html.parser")'))forlinkinlinks:titles.add(link.get_text())defjiebaSet():strs=''iftitles.__len__()==0:returnforitemintitles:strs=strs+item;tags=jieba.analyse.extract_tags(strs,topK=100,withWeight=True)foritemintags:print(item[0]+'\t'+str(int(item[1]*1000)))第一个函数没什么好说的。第二个函数使用了beautifulsoup。通过对网页的分析,找到了所有满足href=re.compile(r'/forezp/article/details')的a标签中的内容。第三个功能是结巴分词。下面简单介绍一下结巴分词。支持三种分词模式。精确模式:尝试最精确地切句,适合文本分析。全模式:扫描句子中所有能成词的词,速度很快,但无法解决歧义。搜索引擎模式:在精准模式的基础上,将长词再次切分,提高召回率,适用于搜索引擎分词。比如结巴分词“我来到北京清华大学”。【全量模式】:我/来/北京/清华/清华大学/华大/大学【精确模式】:我/来/北京/清华大学数据存储我这里使用的是mongoDB数据库,同学们可以选择自己熟悉的orThedatabaseclientthatmeetstherequirements=pymongo.MongoClient("localhost",27017)是使用给定的主机位置和端口。不推荐使用pymongo的Connection()方法,官方推荐使用新方法MongoClient()。db=client['local']这句是将创建mongoDB后默认存在的两个数据库“local”之一赋值给db,这样db在以后的程序中就代表数据库local。posts=db.pymongo_testpost_id=posts.insert(data)在本地给posts分配一个默认集合“pymongo_test”,并使用insert方法单独插入数据。最后回到结巴分词中的一个循环程序,依次插入数据。以上是连接数据库的核心代码。接下来介绍如何启动mongoDB数据库。(一开始连不上程序,后来发现是数据库本身没有启动,唉,编程傻事太多了。)微软logo+R,输入cmd,找到“mongodb”的路径,然后运行??mongodstart命令,并使用--dbpath指定数据存储位置为“db”文件夹。启动mongoDB,我这里放在E盘,大家可以根据自己的需要自行设置。最后还要看开通是否成功。从图中的信息我们知道mongodb使用的是27017端口,所以我们在浏览器中输入http://localhost:27017。打开后mongodb告诉我们在27017上添加1000可以使用http方式查看mongodb的管理信息。