记录一次爬取Hey UI软件的资源(Python)

作者有话说
玩过iApp的人应该就听过Hey UI,不能说全部人都听说过,绝大部分人都应该用过。

但是他的资源我一个朋友眼馋很久了,正好我们公司现在没什么活,我就闲的蛋疼的把他的资源扒了下来。

但是呢,我想着大家有的没有体验过爬虫的乐趣,所以我把Python爬虫源代码给开源出来,让大家学习。

做的还有不足,因为就用了十分钟写的代码,害,如果大家想来学习可以加入学习群来进行学习,学习群号:555143780,群主会时不时更新爬虫或者其他语言的代码!

话不多说,直接上代码!

'''
Name:浮梦
我们的宗旨!
把网站资源抽干,榨干!
运行前请先创建两个文件夹
Hey UI
img
如果不创建不行的哦!
'''
# 下面是导入库
# 一共三个库
# requests
# json
# time
# pymysql
# 如果不会安装库可以CSDN查一下或者百度一下子都能详细解决
import requests
import json
import time
import pymysql

# 数据库字段
'''
三个字段
# title     text类型
# body      text类型
# times     datetime类型
sql语句也为你们写好,到时候自己执行下sql语句就行
Create table ui(
    title text,
    body  text,
    times datetime
)
'''

# 在此准备MYSQL连接
'''
    host        地址
    user        用户名
    password    密码
    database    数据库名
    charset     字符集utf-8(这个不用改)
'''
conn = pymysql.connect(
    host="localhost",
    user="root",
    password="666666",
    database="test",
    charset="utf8"
)
shu = 1
# 获取数据库游标
cursor = conn.cursor()
for num in range(1, 35):
    if shu != 1:
        # 自增
        shu+=1
        time.sleep(5)
    else:
        shu+=1
    try:
        r = requests.get("https://www.iappw.net/api/forumlist.html?fid=100&pageid="+str(num)+"&type=New&size=10").text
        jsons = json.loads(r)
        print(r)
        for a in jsons["forumlist"]:
            print("======================================================")
            print("这个UI的ID为:"+a["tid"])
            print("这个UI的名称为:"+a["title"])
            print("这个UI的介绍为:"+a["summary"])
            print("这个UI的图片已奉上:"+a["img"][0])
            time.sleep(2)
            tidR = requests.get("https://www.iappw.net/api/article.html?tid="+a["tid"]+"&pageid=1&order=ASC")
            imgR = requests.get(a["img"][0])
            # print(imgR.text)
            # 获取源码的json的相关信息
            jsonR = json.loads(tidR.text)
            # 获取文件的Id
            fileid = jsonR["data"]["filelist"][0]["fileid"]
            print("准备下载"+a["title"])
            # 开始下载
            # 下面是自己的世界网的Cookie值,如果不知道在哪里找,可以来学习群555143780
            headers = {
                "Cookie": "这是登录世界网后的Cookie"
            }
            fileR = requests.get("https://www.iappw.net/ajax/downfile/id/"+fileid, headers=headers)
            # print(fileR.text)
            # wb模式为写入二进制
            print("正在写入"+a["title"]+".iApp文件")
            with open("./Hey UI/"+a["title"]+".iApp", "wb") as f:
                f.write(fileR.content)
            with open("./img/"+a["title"]+".jpg", "wb") as imgs:
                imgs.write(imgR.content)
            sql = "INSERT INTO `ui`(title, body, times) VALUES('"+a["title"]+"','"+a["summary"]+"','"+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())+"')"
            # print(sql)
            cursor.execute(sql)
            print(a["title"]+"下载完毕!")
    except Exception as error:
        print("名称:"+a["title"])
        print("错误原因:"+str(error))

代码变量写的不是很规范,害,我会继续努力的!
注:博主不是不会写变量,是懒,啥也不是,下课!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值