用户:
mornwind查看:58 回复:25 评论:58 创建时间:2023-01-04T16:56:22


import requests
import json
import time
from bs4 import BeautifulSoup as bs
import lxml
def string_similar(s1, s2):
#算法请自行编写
web=#帖子列表API,网址自行探索
lst=[]
nl=[]
get_id=[]
def check(lst,text,user,id_list,id):
#此段算法自行探索
raise
return lst,id_list
def save(lst):
with open("信息.json","w",encoding="utf-8") as f:
json.dump(lst,f)
print("\n数据已经保存\n")
print("开始获取信息\n")
lt_url="https://api.codemao.cn/web/forums/boards/simples/all"#帖子分区的API
l=json.loads(requests.get(lt_url).text)["items"]
lt=[[i["id"],i["name"]] for i in l]
for name in range(len(lt)):
print(f"正在获取{lt[name][1]}")
for i in range(1,1000):
#写代码风格不好请见谅
ll=len(lst)
url=web.format(lt[name][0],i)
w=requests.get(url)
w.encoding="utf-8"
data=json.loads(w.text)["items"]
for j in data:
user=(j["user"]["id"],j["user"]["nickname"])
id=j["id"]
title=j["title"]
text=bs(j["content"],"lxml").text.replace("\n","").replace(" ","")
lst,get_id=check(lst,text,user,get_id,id)
except:
continue
nl.append(len(lst))
if nl[-1]==sum(nl[-20:])/20:
print("获取已经稳定\n")
break
print(" 已经获取第",i,"页"," 共",len(lst)-ll,"项"," 当前已经获取",len(lst),"项",sep="",end="\n")
else:
print("获取结束\n")
save(lst)
time.sleep(1)
save(lst)

import requests
import json
import time
from bs4 import BeautifulSoup as bs
import lxml
def string_similar(s1, s2):
#同上,自行编写
web=#API,自行探索
lst=[]
id_list=[]
last=0
def save(lst):
with open("信息.json","w",encoding="utf-8") as f:
json.dump(lst,f)
print("数据已经保存")
def check(lst,text,user,id_list,id):
#同上,自行编写
raise
return lst,id_list
print("开始获取信息")
lt_url="https://api.codemao.cn/web/works/channels/list?type=KITTEN"#作品API
l=json.loads(requests.get(lt_url).text)["items"]
lt=[[i["id"],i["name"]] for i in l]
for name in range(len(lt)):
ou=#API
ls = json.loads(requests.get(ou).text)
for i in ls:
try:
id=i["id"]
name=i["name"]
print(" 正在获取",name,sep="")
url=web.format(id)
w=requests.get(url)
l=json.loads(w.text)["items"]
print(" 预计获取100条评论")
for j in l:
user=[j["user"]["id"],j["user"]["nickname"]]
text=j["content"]
lst,id_list=check(lst,text,user,id_list,id)
print(" 获取了",len(lst)-last,"条评论",sep="")
last = len(lst)
print("现在已获取", last, "条评论", sep="")
except:
pass
save(lst)可能不是爬虫,是AI人工智( ),源代码:https://g i t h u b.com/T u r i n g-P r o j e c t/A n t i F r a u d C h a t B o t(所有要摸鱼的风纪记得感谢我
点赞1
评论
于是我来分享一下自动评论(打广告)的py代码,仅供参考。为了防止大家都打广告,这个cookie你们肯定是用不了的
from requests import *
from time import sleep
from random import choice
from json import loads, dumps
while True:
nw = get('https://api.cod喵/creation-tools/v1/pc/discover/newest-work?offset=0&limit=5')
_dict = loads(nw.text)
for infos in _dict['items']:
item = list(infos.items())
print(item[0][1]) # 作品id
print(item[1][1]) # 作品名称
print(item[5][1]) # 作者昵称
cookie = 'authorization=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJDb2RlbWFvIEF1dGgiLCJ1c2VyX3R5cGUiOiJzdHVkZW50IiwiZGV2aWNlX2lkIjowLCJ1c2VyX2lkIjoxMjU4MzkxNDI1LCJpc3MiOiJBdXRoIFNlcnZpY2UiLCJwaWQiOiI2NWVkQ1R5ZyIsImV4cCI6MTY3NjI2NTExOSwiaWF0IjoxNjcyMzc3MTE5LCJqdGkiOiIzMGVlYjUwZC1iMzZjLTQzNGMtYWYxYy1jMWQwZmNmNmNiODQifQ.AYeqIBA369kYSuQmnt3hlIq1703kdcgGjtVBvodbXLQ;acw_tc=2f624a2216723771197106156e4fb824b63e759c543b470ca6429216cfa2e4'
headers = {
"Content-Type": "application/json",
"User-Agent": 'Mozilla/5.0 (Windows NT 5.1rv: 21.0) Gecko/20100101 Firefox/21.0',
'cookie': cookie
}
sentents = (
'【自动】{nick_name}的作品不错哟~继续加油(加广告)',
'【自动】很好!继续做出优秀作品吧(加广告)',
'【自动】{nick_name}的不错哟~(加广告)',
'【自动】{work_name}->这个作品我看好哟~(加广告)'
'【自动】{nick_name}继续加油,作品{work_name}很好!(加广告)'
)
item=list(infos.items())
content=choice(sentents).format(work_name=item[1][1],nick_name=item[5][1])
p=post(r'''https://api.cod喵/creation-tools/v1/works/{}/comment'''.format(item[0][1]),
headers=headers,
data=dumps({'content': content}))
print(p.text, p)
p = post(r'https://api.cod喵/nemo/v2/works/{}/like'.format(item[0][1]),
headers=headers,
data=dumps({}))
print(p.text, p)
print(item[1][1], item[0][1])
点赞1
评论
xdm晚上喵鱼
这里给个余弦相似度判断文本相似度的Python算法(可能喵山 见谅
def compStr(s1 = '',s2 = ''):
s1v = [];
s2v=[];
a = set(s1+s2);
for i in a:
s1v.append(s1.count(i));
s2v.append(s2.count(i));
print(s1v,s2v);
i,j,k = 0,0,0;
for p in range(0,len(s1v)):
i+=s1v[p]*s2v[p]
for p in s1v:
j+=p**2
j = math.sqrt(j)
for p in s2v:
k+=p**2
k = math.sqrt(k)
res = float(i)/j/k
return res点赞0
评论