爬虫的一个基本原理:
- 发起请求
#通过http库向目标站点发起请求,及发送一个request 请求可以包含额外的headers等信息,等待服务器的响应。 - 获取相应的内容
如果服务器正常响应,会得到一个Response,Response内容便是所要获取的页面内容,类型:二进制,文本,HTML,Json字符串。 - 解析内容
得到的内容,可能是HTML可以用正则表达式,网页解析库来进行解析,可能是Json,可以直接为json对象解析,可能是二进制文件 - 保存数据
保存的数据多样,可以存为文本,也可以保存到数据库,或者是保存特定的格式的文件。
爬虫常用的请求方式有两种:get直接获取,post加密获取
还有一些其他的方式但是都不常用:head put delete options 等等
下面我们开始实战爬取一个音乐的MV:
- 找到一个QQ音乐的MV,我拿周杰伦的听妈妈的话来做个例子
听妈妈的话-周杰伦 - 准备Chrome浏览器,右击页面检验:
- Ctrl+R对页面进行刷新Media下面会出现3-4个文件,选择文件属性最大的那个:
- 点开体积最大的那个文件,然后获取到下面这个页面把Request URL:
把Request URL后面的链接进行复制即可
接下来我们进行代码的实战:
import requests
# 请求音乐地址url 就是我们刚刚复制的那一个
File = request.get("http://58.222.51.18/vcloud1049.tc.qq.com/1049_F2100732000OFInd0zHFVR1001538946.f20.mp4?vkey=F3B88ED0DD646408288E6B9EEFD5CCE0B30FCFB10F2434C94E757B82F2B6084685BCAF876645E99E3DDDCC4CA251ECEA42FB8C24F59975FD8E065AF0A75CED046EB03C94B29C39C6EFB86C9DC41FFE0106A3EDC8BE0E8888")
# 获取到响应地址的二进制格式
print(File.content)
# 保存文件
with open("E:\pythonimg\听妈妈的话-周杰伦.mp4","wb") as f:
f.write(File.content)
# 程序结束做个提示
print("您所爬取的文件已经爬取完成:请去根目录进行查看!!")
with open里面的.格式可以修改 爬取一首音乐爬取一张图片原理是一样的
除去其他注释 真正爬取只需要5行代码 还不快去试试吧