hwp_better 发表于 2020-7-21 16:52

懒人必备 |通过爬虫 筛选以及查看CSDN 满足相应积分的资源列表 简单好用

为了方便查看自己上传资源情况。不想一次一次的翻阅自己上传资源列表进行查看。写个简单的爬虫,就可以解决这些问题啦。使用示例:1:筛选条件为30积分2:筛选条件为40积分全部代码:# 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) >= int(download_score):
            print("\n*****************第" + str(sum) + "个**************")
            print("******下载积分为:"+str(p1)+"\n******对应下载链接:https://download.csdn.net/"+str(temp_url))
            sum = sum + 1
print("符合条件的共计:"+str(sum-1))
OK
页: [1]
查看完整版本: 懒人必备 |通过爬虫 筛选以及查看CSDN 满足相应积分的资源列表 简单好用