简介

爬虫常用与毕业设计的数据收集阶段, 多同学要求和反应, 让学长出一片讲解爬虫的文章.

本文将描述和解析爬虫怎么使用, 并且给出实例.

所谓爬虫就是编写代码从网页上爬取自己想要的数据,代码的质量决定了你能否精确的爬取想要得到的数据,得到数据后能否直观正确的分析。

Python无疑是所有语言中最适合爬虫的。Python本身很简单,可是真正用好它需要学习大量的第三方库插件。比如matplotlib库,是一个仿照matalab的强大的绘图库,用它可以将爬下来的数据画出饼图、折线图、散点图等等,甚至是3D图来直观的展示。

Python第三方库的安装可以手动安装,但是更为简便的是在命令行直接输入一行代码即可自动搜索资源并安装。而且非常智能,可以识别自己电脑的类型找到最合适的版本。

Pip install +你所需要的第三方库

或者是easy install +你所需要的第三方库

这里建议大家使用pip安装,因为pip可以安装也可以卸载,而另一种方法只能安装。如果遇到你想使用新的版本的第三方库,使用pip的优势就会显现出来。

交互界面

[图片上传失败...(image-7b940a-1604630578613)]def web():

root = Tk()

Label(root,text='请输入网址').grid(row=0,column=0) #对Label内容进行表格式布局

Label(root,text='请输入User-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

head = e2.get()

爬虫部分

使用爬虫爬取随便一个博客,并对其所有的文章进行结巴分词。从而提取关键词,分析这位博主使用当下比较热的与互联网相关的词汇的频率。

[图片上传失败...(image-75c9f8-1604630578613)]

先编写一个函数download()获取url,接着编写一个函数parse_descrtion()解析从

url中获取的html,最后结巴分词。def download(url): #通过给定的url爬出数据

if url is None:

return None

try:

response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36', })

if (response.status_code == 200):

return response.content

return None

except:

return None

def parse_descrtion(html):

if html is None:

return None

soup = BeautifulSoup(html, "html.parser") #html字符串创建BeautifulSoup

links = soup.find_all('a', href=re.compile(r'/forezp/article/details'))

for link in links:

titles.add(link.get_text())

def jiebaSet():

strs=''

if titles.__len__()==0:

return

for item in titles:

strs=strs+item;

tags = jieba.analyse.extract_tags(strs, topK=100, withWeight=True)

for item in tags:

print(item[0] + '\t' + str(int(item[1] * 1000)))

第一个函数没什么好说的。

第二个函数用到了beautifulsoup,通过对网页的分析,从而寻找所有的满足条件为

href=re.compile(r'/forezp/article/details')的a标签里的内容。

第三个函数就是结巴分词。接下来对结巴分词作简单的介绍。

支持三种分词模式。

精确模式:试图将句子最精确地切开,适合文本分析。

全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。

搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

举个例子,结巴分词“我来到北京清华大学”这句话。

【全模式】:我/来到/北京/清华/清华大学/华大/大学

【精确模式】:我/来到/北京/清华大学

数据存储

我这里使用mongoDB数据库, 同学们可以选取自己熟悉或符合要求的数据库

client = pymongo.MongoClient("localhost", 27017)

这句是使用给定主机位置和端口。pymongo的Connection()方法不建议使用,官方推荐新方法MongoClient()。

db = client['local']

这句是将创建好mongoDB后默认存在的两个数据库中的其中一个“local”赋给db,这样

db在以后的程序里就代表数据库local。

posts = db.pymongo_test

post_id = posts.insert(data)

将local里默认的一个集合“pymongo_test”赋值给posts,并且用insert方法单个插入数据。最后回到结巴分词里的一个循环程序里,将数据依次插入。

以上是有关连接数据库的核心代码,接下来介绍如何启动mongoDB数据库。(我一开始编程怎么都连接不上,后来发现是数据库自身没有启动,唉,编程里发生的傻逼事情实在是太多了。)

微软徽标+R,输入cmd,找“mongodb”的路径,然后运行mongod开启命令,同时用--dbpath指定数据存放地点为“db”文件夹。

启动mongoDB

我这里是放在了E盘,大家根据需要自己设置。最后要看下是否开启成功,从图中的信息中获知,mongodb采用27017端口,那么我们就在浏览器输http://localhost:27017,打开后mongodb告诉我们在27017上Add 1000可以用http模式查看mongodb的管理信息。

python爬虫做毕业设计_毕业设计之 --- 爬虫相关推荐

  1. python 爬虫框架对比_几种爬虫框架效果分析,python最好爬虫框架是哪一种?

    爬虫可以用不同的语言编写,而且爬虫框架也多,比如python,简单易学,也是有不同的爬虫框架,python最好爬虫框架是哪一种呢?这些爬虫框架都有什么优缺点? 一.爬虫框架使用对比分析 多学习爬虫的框 ...

  2. 学python将来做什么_学python能干嘛?

    明确目标 所谓明确目标就是要先知道,学习python的目的是为了什么? 一.Python可以做什么? 二.为了将来从来从事相关开发工作? 三.简便当前工作环境,提升工作效率? 四.不甘落后,学习一门语 ...

  3. python如何做动画_如何在Python中动画动态系统的运动?

    假设你有一个4个微分方程,它代表了一个动态系统(推车上的钟摆)的运动,你用来求解这些方程scipy.integrate.odeint持续10秒,间隔0.01秒.在 最后得到尺寸为(1000,4)的解矩 ...

  4. python爬虫微博关键字_微博关键词爬虫——基于requests和aiohttp

    requests库是python爬虫中最常见的库,与内置的urllib库相比,它更加简洁高效,是每一个接触爬虫者都务必要掌握的基础:但它也是有缺点的,就是不支持异步操作,虽然可以通过多线程来解决,但当 ...

  5. python爬京东优惠券_京东抽奖爬虫LiteVersion

    京东全能工具包 JDPackage V2.3 作者接一切数据&Web&小程序开发外包服务,介绍人提供10%-20%佣金.可签合同.开正规公司发票. 作者2018.8.27留 感谢大 ...

  6. python智能家居论文_毕业设计(论文)-基于树莓派的智能家居精选.docx

    毕业设计(论文)-基于树莓派的智能家居精选 摘要随着物联网技术的发展,智能家居产业迅速崛起.在此背景下,我们研究了智能家居管理系统的设计与实现.本文所设计的智能家居管理系统采用分层架构设计,分别为感知 ...

  7. python爬虫 拼多多_拼多多爬虫之anti_content分析

    首先来看抓包: 查找相关的代码: this.request = function() { var e, t = (e = c.a.mark(function e(t) { var n, o, a, i ...

  8. python 知识图谱 红楼_毕业设计:基于知识图谱的《红楼梦》人物关系可视化(运行篇)...

    知识图谱是个非常有趣的方向,在公司业务应用方面也非常广泛.比如对搜索推荐的优化,让推荐的内容更加丰富,甚至给用户以意外之喜.比如在智能问答方面,避免多轮对话,从用户的一个简单的问句,给用户丰富的答案, ...

  9. python如何爬取图片_百度图片爬虫-python版-如何爬取百度图片?

    上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫, ...

  10. Python爬虫之旅_高性能异步爬虫

    0x00:异步爬虫概述 目的:在爬虫中使用异步实现高性能的数据爬取操作. 先来看一个单线程.串行方式的爬虫: import requests headers = {'User-Agent':'xxx' ...

最新文章

  1. 【算法】均匀的生成圆内的随机点
  2. dvd清洗碟效果好吗_用什么清洗抽油烟机效果比较好?有哪些注意事项?
  3. 最优传输理论和生成模型的几何观点
  4. 采用Memcached实现分布式Session
  5. 汇编语言程序设计,计算比赛成绩
  6. Linux 命令之 ifconfig -- 配置和显示网卡的网络参数
  7. qt qstandarditemmodel rowcount获取行数不正确_MIL+QT实践教程十
  8. paip.提升安全---网站登录密码明文传输的登录高危漏洞解决方案
  9. 无线电监测软件java_大牛干货:软件无线电的设计和测试
  10. 生产排程系统_论生产计划排程APS系统的几大问题
  11. 在centos上安装pycharm
  12. 【Android 逆向】ELF 文件格式 ( 安装 010 Editor 二进制查看工具的 ELF.bt 插件模板 | 安装 ELF.bt 模板 | 打开 ELF 文件 )
  13. 计算机组成原理实验五:CPU组成与机器指令执行实验
  14. android 使用signingConfigs进行打包
  15. iOS动画:3D动画(18)
  16. Matlab画的玫瑰花
  17. WEB端显示摄像头实时图像数据
  18. Win11怎么搜索无线显示器?Win11查找无线显示器设备的方法
  19. lcms产品文档规范
  20. Axure RP9教程 中继器说明

热门文章

  1. #2.生活小妙招-实现没有加速选项的视频加速操作
  2. html五角星符号怎么打,实心五角星怎么打出来(半实心星星符号连续)
  3. mysql 查询附近店铺SQL写法 经度 纬度 范围 距离
  4. CDH6.3.2安装部署
  5. cpuz北桥频率和内存频率_cpu-z里的注:频率是什么意思???高出内存频率
  6. 电脑如何控制点击android手机,安卓手机怎么控制电脑?红米手机远程控制操作电脑方法...
  7. 分享一个AUTO uninstaller|AUTOCAD 安装失败解决方案
  8. 什么是域名系统 (DNS)
  9. 小白聊智慧制造之二:智能制造的体系架构
  10. 魅蓝s6手机sim卡不显示无服务器,科普OPPOA57怎么截图及魅蓝S6怎么插卡