从网页抓取视频(知乎:Python数据分析大家好,相信点进来看的小伙伴 )
优采云 发布时间: 2021-11-08 22:20从网页抓取视频(知乎:Python数据分析大家好,相信点进来看的小伙伴
)
知乎:Python数据分析
大家好,相信点进来观看的朋友都对爬虫很感兴趣,博主也是一样。博主刚开始接触爬虫的时候,就被深深的吸引住了,因为觉得 SOCOOL!每当我打完代码,看着屏幕上漂浮的一串数据,我都觉得很充实。有什么问题吗?更厉害的是爬虫技术可以应用到很多生活场景,比如自动投票,批量下载有趣的文章,小说,视频,微信机器人,爬取重要数据做数据分析啊,我真的觉得这些代码是为自己写的,可以为自己服务,也可以为他人服务,所以人生苦短,所以选择爬虫。
说实话,博主也是朝九晚五的上班族。学习爬虫也是他的业余时间。然而,基于对爬虫的热爱,他开始了他的爬虫学习之旅。俗话说,兴趣是最好的老师。博主也是小白。开设这个公众号的初衷是想和大家分享一下我学习爬虫和爬虫技巧的一些心得。当然,网上也有各种爬虫教程,供大家参考学习。主会分享一些开始学习时使用的资源。好了,废话不多说,开始我们的正题。
1. 什么是爬虫?
首先我们要明白一件事,那就是什么是爬虫,为什么是爬虫。博主百度给了一点,解释是这样的:
网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常见的是网络追逐)是按照某些规则自动抓取万维网上信息的程序或脚本。其他不太常用的名称是蚂蚁、自动索引、模拟器或蠕虫。
其实说白了就是爬虫可以模拟浏览器的行为为所欲为,自定义搜索下载的内容,实现自动化操作。比如浏览器可以下载小说,但是有时候不能批量下载,所以爬虫功能很有用。
实现爬虫技术的编程环境有很多,Java、Python、C++等都可以进行爬虫。但是博主选择了Python。相信很多人也会选择Python,因为Python确实非常适合爬虫。丰富的第三方库非常强大。几行代码就可以实现你想要的功能。更重要的是,Python 还是数据挖掘和分析方面的好专家。用Python做这样的数据爬取和分析的一站式服务真是太棒了!
2. 爬虫学习路线
知道了爬虫是什么,我给大家介绍一下博主总结的学习爬虫的基本路线,仅供大家参考,因为每个人都有自己的方法,这里只是提供一些思路。
学习Python爬虫的一般步骤如下:
以上是一个整体的学习概述。许多内容博主还需要继续学习。关于提到的每一步的细节,博主会在后续的内容中逐步与大家分享实际的例子,当然中间也会穿插一些。关于爬虫的有趣内容。
3. 从第一个爬虫开始
我认为第一个爬虫代码的实现应该从urllib开始。博主刚开始学习的时候,就利用urllib库,键入几行代码,实现了一个简单的数据爬取功能。我想我的大多数朋友也来过这里。的。当时的感觉是:哇,太神奇了,一个看似复杂的任务,几行代码就可以搞定,就想知道这些短短几行代码是怎么实现的,如何执行更高级复杂的任务。爬行呢?带着这个疑问,我开始学习urllib库。
首先不得不提一下爬取数据的过程,搞清楚它是一个什么样的过程。学习urllib的时候会更容易理解。
爬行的过程
其实抓取过程和浏览器浏览过程是一样的。原因大家应该明白了,当我们在键盘上输入网址,点击搜索时,首先会通过网络通过DNS服务器,解析网址的域名,找到真正的服务器。然后我们通过 HTTP 协议向服务器发送 GET 或 POST 请求。如果请求成功,我们就得到了我们想要看到的网页,一般是用HTML、CSS、JS等前端技术构建的,如果请求不成功,服务器会返回状态码给我们请求失败,常见的503、403等。
爬取的过程也是一样,通过向服务器发送请求获取HTML网页,然后解析下载的网页,得到我们想要的内容。当然,这是爬取过程的一个概览,还有很多细节需要我们处理。这些将在后续继续与大家分享。
了解了爬行的基本过程后,我们就可以开始我们真正的爬行之旅了。
网址库
Python内置了urllib库,可以说是爬行过程中非常重要的一部分。使用这个内置库可以完成向服务器发出请求,获取网页的功能,所以也是学习爬虫的第一步。
博主使用Python3.x。urllib 库的结构与 Python2.x 的有些不同。Python2.x 中使用的 urllib2 和 urllib 库,而 Python3.x 合并成一个独特的 urllib 库。
首先,我们来看看Python3.x 的urllib 库有什么。
博主使用的IDE是Pycharm,编辑调试非常方便,很棒。
在控制台中输入以下代码:
>>importurllib
>>dir(urllib)
['__builtins__','__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__','__path__', '__spec__', 'error', 'parse', 'request', 'response']
可以看到,urllib除了内置的双下划线开头和结尾的属性外,还有4个重要的属性,分别是error、parse、request、response。
在 Python urllib 库中,doc 的开头是这样的简短描述:
这4个属性中最重要的是请求,它完成了爬虫的大部分功能。我们先来看看请求是如何使用的。
请求的使用
request请求最简单的操作就是使用urlopen方法,代码如下:
import urllib.request
response = urllib.request.urlopen('http://python.org/')
result = response.read()
print(result)
操作结果如下:
<p>b'\n