1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python百度贴吧发帖签到_利用爬虫自动签到所有贴吧

python百度贴吧发帖签到_利用爬虫自动签到所有贴吧

时间:2020-04-14 08:58:24

相关推荐

python百度贴吧发帖签到_利用爬虫自动签到所有贴吧

先登录贴吧,保存下cookie方便登录使用

打开页面发现,如果关注的贴吧数大于8会分两部分展示贴吧信息:

但所有关注的贴吧信息都应该在网页源码中:

以某个贴吧的data-fid在源码中搜索:

发现关注的贴吧都在源码中有出现:

可以先写一个py来获得各个贴吧的名称:

import re

import requests

import json

cookies = {

'Cookie':'登录后产生的cookie复制到这里'

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'

}

r = requests.get('/index.html',cookies = cookies,headers = headers).text

kws = re.findall('"forum_name":"(.*?)",',r)

for kw in set(kws):

word = "u'"+kw+"'"

title = eval(word)

print(title)

进入某个贴吧,发现网址结构为:(网址结构简单方便进入)

/f?kw=秦时明月

打开控制台的情况下,点击签到,看提交了哪些网页:

发现有两个网页提交过:

通过网址名称及数据可猜出这个网址是签到的时间记录

/sign/loadmonth?kw=%E7%A7%A6%E6%97%B6%E6%98%8E%E6%9C%88&ie=utf-8&t=0.817119431343615

通过数据中有success,网址是add可猜出这是提交签到的网址:

/sign/add

ie:utf-8

kw:秦时明月

tbs:7deb781aa2e0a80f1538900881

可看出tbs为不知道的字符串,多看几个贴吧发现每个贴吧的tbs值都不相同

在网页源码搜索 "tbs" 发现源码中也有tbs值,将它复制下来写个爬虫提交一下

data = {

'ie': 'utf-8',

'kw': '天之痕电视剧',

'tbs': '315f3d4bb1c11aa11538901651',

}

r2 = requests.post('/sign/add',data=data,cookies=cookies,headers=headers).text

发现提交成功,打开网页也发现签到成功,总体流程基本也实现出来了:

1 先请求/index.html把所有关注的贴吧的名称记录下来

2 再请求/f?kw=贴吧名称 把关键字节tbs保存下来

3 最后post请求/sign/add 实现签到功能

代码如下:

import re

import requests

import json

cookies = {

'Cookie':'登录后产生的cookie复制到这里'

}

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'

}

r = requests.get('/index.html',cookies = cookies,headers = headers).text

kws = re.findall('"forum_name":"(.*?)",',r)

for kw in set(kws):

word = "u'"+kw+"'"

title = eval(word)

r1 = requests.get('/f?kw={}'.format(title),cookies=cookies,headers=headers).text

tbs = re.findall('\'tbs\': "(.*?)"',r1)[0]

# print(tbs) # 获得tbs

data = {

'ie': 'utf-8',

'kw': title,

'tbs': tbs,

}

r2 = requests.post('/sign/add',data=data,cookies=cookies,headers=headers).text

try:

result = json.loads(r2)["data"]["errmsg"]

print(title,result)

except:

print(title,'已经签过')

print('所有贴吧已签到完成')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。