python 爬取百度网盘资源,python数据挖掘 百度网盘
相比百度云盘,阿里云盘下载速度不限,空间容量大,深受大家喜爱。本文将通过Python抓取阿里云磁盘的资源,有兴趣的可以了解一下。
00-1010网页分析,抓取和解析模板,完整代码总结。前阵子阿里云磁盘大火送了不少容量空间。而且阿里云盘的下载是无限的,比百度网盘好多了。这两天看到一个第三方网站,可以搜索阿里云上的资源,但是它的资源顺序不是按时间顺序的。这种情况会导致长时间排在前面的资源成为无效资源。这里的边肖被python抓取并重新排序。
目录
这个网站有两条搜索路线:搜索路线1和搜索路线2。本文使用搜索路线2。
打开控制面板下的网络,你会一眼看到seach.html的get请求。
有了以上几个参数,四个关键参数:
页面:页数,关键字:搜索关键字类别:文件分类,all(全部),video(视频),image(图片),doc(文档),audio(音频),zip(压缩文件),other(其他)。默认脚本是allsearch_model:搜索行也在控制面板中。查看此网页。用bs4解析页面上div(class=resource-item border-dashed-eee)标签下的A标签得到跳转网盘的地址,解析DIV下的P标签得到资源日期。
网页分析
首先,安装解析页面所需的bs4第三方库。
pip 3安装bs4
下面是抓取和解析网页的脚本代码,最后按日期降序排列。
导入请求
frombs4importBeautifulSoup
导入字符串
Word=input(请输入要搜索的资源的名称:)
标题={
用户代理“:”Mozilla/5.0(windows nt 10.0;Win64x64)AppleWebKit/537.36(KHTML,like gecko)Chrome/96 . 0 . 4664 . 45 safari/537.36
}
result_list=[]
用于范围(1,11):
打印(搜索页面{} )。格式(一))
params={
第:页,
关键词 :字,
search_folder_or_file:0,
is _ search _ folder _ content :0,
is_search_path_title:0,
类别 : 全部,
文件扩展名 : 全部,
搜索_型号 :0
}
response _ html=requests . get( https://www . alipanso.com/search . html ,headers=headers,params=params)
response _ data=response _ html . content . decode()
soup=beautiful soup(response _ data, html . parser );
divs=soup.find_all(div ,class _= resource-item border-dashed-eee )
iflen(divs)=0:
破裂
第:号
p=div.find(p ,class_=em )
ifp==None:
破裂
download_url=https://www。
alipanso.com/ + div.a[href]
date = p.text.strip();
name = div.a.text.strip();
result_list.append({date:date, name:name, url:download_url})
if len(result_list) == 0:
break
result_list.sort(key=lambda k: k.get(date),reverse=True)
示例结果:
模板
上面抓取完内容后,还需要将内容一个个复制到 google 浏览器中访问,有点太麻烦了。要是直接点击一下能访问就好了。小编在这里就用 Python 的模板方式写一个 html 文件。
模板文件小编是用 elements-ui 做的,下面是关键的代码:
<body><div id="app">
<el-table :data="table" style="width: 100%" :row-class-name="tableRowClassName">
<el-table-column prop="date" label="日期" width="180"> </el-table-column>
<el-table-column prop="name" label="名称" width="600"> </el-table-column>
<el-table-column label="链接">
<template slot-scope="scope">
<a :href="http://+scope.row.url" rel="external nofollow"
target="_blank"
class="buttonText">{{scope.row.url}}</a>
</template>
</el-table>
</div>
<script>
const App = {
data() {
return {
table: ${elements}
};
}
};
const app = Vue.createApp(App);
app.use(ElementPlus);
app.mount("#app");
</script>
</body>
在 python 中读取这个模板文件,并将 ${elements} 关键词替换为上面的解析结果。最后生成一个 report.html 文件。
with open("aliso.html", encoding=utf-8) as t:template = string.Template(t.read())
final_output = template.substitute(elements=result_list)
with open("report.html", "w", encoding=utf-8) as output:
output.write(final_output)
示例结果:
跳转到阿里云盘界面
完整代码
aliso.html
<html><head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<script src="https://unpkg.com/vue@next"></script>
<!-- import CSS -->
<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css">
<!-- import JavaScript -->
<script src="https://unpkg.com/element-plus"></script>
<title>阿里云盘资源</title>
</head>
<body>
<div id="app">
<el-table :data="table" style="width: 100%" :row-class-name="tableRowClassName">
<el-table-column prop="date" label="日期" width="180"> </el-table-column>
<el-table-column prop="name" label="名称" width="600"> </el-table-column>
<el-table-column label="链接">
<template v-slot="scope">
<a :href="scope.row.url"
target="_blank"
class="buttonText">{{scope.row.url}}</a>
</template>
</el-table>
</div>
<script>
const App = {
data() {
return {
table: ${elements}
};
}
};
const app = Vue.createApp(App);
app.use(ElementPlus);
app.mount("#app");
</script>
</body>
</html>
aliso.py
# -*- coding: UTF-8 -*-import requests
from bs4 import BeautifulSoup
import string
word = input(请输入要搜索的资源名称:)
headers = {
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
}
result_list = []
for i in range(1, 11):
print(正在搜索第 {} 页.format(i))
params = {
page: i,
keyword: word,
search_folder_or_file: 0,
is_search_folder_content: 0,
is_search_path_title: 0,
category: all,
file_extension: all,
search_model: 2
}
response_html = requests.get(https://www.alipanso.com/search.html, headers = headers,params=params)
response_data = response_html.content.decode()
soup = BeautifulSoup(response_data, "html.parser");
divs = soup.find_all(div, class_=resource-item border-dashed-eee)
if len(divs) <= 0:
break
for div in divs[1:]:
p = div.find(p,class_=em)
if p == None:
break
download_url = https://www.alipanso.com/ + div.a[href]
date = p.text.strip();
name = div.a.text.strip();
result_list.append({date:date, name:name, url:download_url})
if len(result_list) == 0:
break
result_list.sort(key=lambda k: k.get(date),reverse=True)
print(result_list)
with open("aliso.html", encoding=utf-8) as t:
template = string.Template(t.read())
final_output = template.substitute(elements=result_list)
with open("report.html", "w", encoding=utf-8) as output:
output.write(final_output)
总结
用 python 做一些小爬虫,不仅去掉网站上烦人的广告,也更加的便利了。
以上就是利用Python抓取阿里云盘资源的详细内容,更多关于Python抓取云盘资源的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。