好友
阅读权限10
听众
最后登录1970-1-1
|
最近想研究下用python自动做任务,想到先拿精易论坛练练手,目标是自动实现精易论坛随机帖子评分
用fillder抓取到的评分post包截图如下
用python的request,与xpath能够获取到每个页面的formash,pid,tid,剩余的post参数不变,需要注意的是referer中也有tid,pid,目前这些都做好了,对目标url发起请求,得到的响应却如下
求教大神们,请问这怎么解决呢?
我写的签到代码如下
[Python] 纯文本查看 复制代码 def dailyTask():
headers = {
'cookie': '这个不让看',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
}
# for i in range(5):
session = requests.session()
pageNumber = random.randint(34, 2000)
# url = 'https://bbs.125.la/thread-1472' + str(pageNumber) + '-1-1.html'
url_page = 'https://bbs.125.la/thread-14720892-1-1.html' #先换成指定url,好分析
rep = session.get(url=url_page, headers=headers)
if rep.status_code==200:
print('进入帖子详情页成功')
tree=etree.HTML(rep.text)
a_list=tree.xpath('//*[@id="ak_rate"]/@onclick')
addr=a_list[0]
str1=addr.split(',')
str2=str1[1].split('&')
tid1=str2[2]
pid1=str2[3]
tid2=tid1.split('=')[1]
pid2=pid1.split('=')[1]
pid3=pid2.split('\'')[0]
tid = tid2
pid = pid3 #获取到tid与pid
formash1=tree.xpath('//*[@id="vfastpost"]/input/@value')
formash=formash1[0] #获取到formash
print("获取pid={}与tid={}与formash={}成功,开始自动评分".format(pid,tid,formash))
#开始评分
url_score='https://bbs.125.la/forum.php?mod=misc&action=rate&ratesubmit=yes&infloat=yes&inajax=1'
data='formhash='+formash+'&tid='+tid+'&pid='+pid+'&referer=https%3A%2F%2Fbbs.125.la%2Fforum.php%3Fmod%3Dviewthread%26tid%3D'+tid+'%26page%3D0%23pid'+pid+'&handlekey=rate&score4=%2B1&reason=%E6%84%9F%E8%B0%A2%E5%88%86%E4%BA%AB%EF%BC%8C%E5%BE%88%E7%BB%99%E5%8A%9B%EF%BC%81%7E'
rep_score=session.post(url=url_score,data=data.encode())
print(rep_score.status_code)
print(rep_score.text)
else:
print('进入帖子失败')
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|