作者有话说
玩过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))
代码变量写的不是很规范,害,我会继续努力的!
注:博主不是不会写变量,是懒,啥也不是,下课!