为了方便查看自己上传资源情况。不想一次一次的翻阅自己上传资源列表进行查看。写个简单的爬虫,就可以解决这些问题啦。使用示例:1:筛选条件为30积分
2:筛选条件为40积分
全部代码:[Python] 纯文本查看 复制代码 # coding=utf-8
import urllib.request
import time
import re
import os
import requests
from bs4 import BeautifulSoup
page_num = input("**************你的上传资源是多少页呢?不知道的话,多说点也无妨!**************\n请输入:")
username=input("请输入你的CSDN博客用户ID,例如:https://blog.csdn.net/8888 则博客ID为:888 \n请输入:")
download_score=input("请输入你希望看到的资源最小下载分数是多少?\n请输入:")
num = 1
sum = 1
while num<int(page_num):
url='https://download.csdn.net/user/'+str(username)+'/uploads/'+str(num)
num = num+1
k = {'user-agent': 'Mozilla/5.0'}
r = requests.get(url,headers = k,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
soup = BeautifulSoup(str(r.text), "html.parser")
data = soup.find_all(class_="my_resource")
data1=BeautifulSoup(str(data),"html.parser")
data2 = data1.find_all(class_="card clearfix")
for i in data2:
need_data=BeautifulSoup(str(i),"html.parser")
temp_url=need_data.find(class_="content").find('a')['href']
temp_score=need_data.find(class_="score")
pat = re.compile('<[^>]+>') # 去掉尖括号里面的东西
pat1 = re.compile(r'\d+\.?\d*')
p0 = pat.sub('', str(temp_score))
p1 = pat1.findall(str(p0))
if int(p1[0]) >= int(download_score):
print("\n*****************第" + str(sum) + "个**************")
print("******下载积分为:"+str(p1[0])+" \n****** 对应下载链接:https://download.csdn.net/"+str(temp_url))
sum = sum + 1
print("符合条件的共计:"+str(sum-1))
OK |