欢迎光临
我们一直在努力

【爬虫】Libvio.link反爬解析

首先说结论

Libvio.link没有任何反爬虫措施,本文只分析其网站结构及爬取策略的选择,不作为任何其他参考,且仅供技术交流用

声明

本文仅供技术交流,如侵犯到任何利益,可以与我联系删除本文

正文

我们首先来看网页结构 可以看到,整个页面是一个非常经典首行菜单栏,下面是各种影片内容。 一般我们需要按类别爬取,本文以“电影”这个类别为例。 在这里插入图片描述 点击进入电影类别,内容排布非常常规,打开F12 – 网络,观察一下发来的包有什么特别点。 在这里插入图片描述 尝试搜索一部影片,发现并没有对影片内容进行加密,所有影片名都出现在一个html文件中,来到pycharm中我们尝试一下爬取内容。 在这里插入图片描述 没有加密,成功爬取下来了,但是是html代码,我们一般是用bs4的BeautifulSoup来进行解析。 在这里插入图片描述 分析网页结构,可以看到有一个ul节点包裹住了数个代表单个影片的li节点,我们先find到这个ul节点再使用find_all来获取各个影片。 解析代码如下:

import requests
from bs4 import BeautifulSoup

headers = {
# header信息 没有加密 所以这里省略
}

response = requests.get('你需要解析的网址', headers=headers)

soup = BeautifulSoup(response.text, 'html.parser')
temp = soup.find("ul", class_="stui-vodlist clearfix")
items = temp.find_all('h4', class_='title text-overflow')

for item in items:
print(item.text)

在这里插入图片描述 可以看到正确获取了对应的内容,对应的网址信息就在href属性中,这里不做赘述。 接着我们进入到其中一个详情页面 在这里插入图片描述 发现没有任何加密,直接传输了mp4文件 在这里插入图片描述 看到一个range参数,应该是控制mp4从哪里开始传输的,如果需要全片就直接从0开始。

import requests

url = "爬取的地址"
save_path = "保存的文件名"

headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0",
"accept": "*/*",
}

with requests.get(url, headers=headers, stream=True, timeout=60) as r:
r.raise_for_status()
total = int(r.headers.get("content-length", 0))
downloaded = 0

with open(save_path, "wb") as f:
for chunk in r.iter_content(chunk_size=1024 * 1024):
if not chunk:
continue
f.write(chunk)
downloaded += len(chunk)
if total:
print(f"\\r{downloaded/total:.1%} ({downloaded}/{total} bytes)", end="")

print("\\ndone:", save_path)

最后也是成功获取下来了 在这里插入图片描述

结语

该网站没有任何反爬措施,适合新手练手,但是绝不认可任何批量爬取影响他人服务器正常服务的行为,本文只作为技术交流使用

赞(0)
未经允许不得转载:171主机测评 » 【爬虫】Libvio.link反爬解析
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址