更多课程 选择中心


Python培训

400-111-8989

Python之Web网站自动评论系统开发

  • 发布:Benjaminn
  • 来源:Python研发测试
  • 时间:2018-01-16 16:16

本教程仅供参考学习交流,方案策略讨论,后期需各自完善优化。

公司网站运营常常需要足够多的用户数据,比如对某个商品或物品的真实的评论,常常需要很多素材,如果是人工手动上传并导入数据的话,千条内的数据还是能够通过人工完成的,如果数据达到了上万条人工就完成就有点难度了,无论从人工成本,还是管理成本来说会大大增加。

从成本和数据管理和统一的方面来说应该实现自动化系统,毕竟机器可以24小时运作,执行定时任务;同时减少人力的开支同时公司业务保密性也有一定提升。

好了,不逼逼了,下面正式开始:

素材:以游戏平台当乐网为例:#/,实现对网站下的每个不同的游戏自动评论。

手操流程:

1.真实用户登陆;

2.找到目标游戏;

3.输入评论内容;

4.点击发表,评论成功。

逻辑梳理:现在手动操作的流程已经清楚了,下面我们来梳理代码部分。

1. 实现自动登录并记录登录成功后的信息;

2.从网站中找到需要评论的应用(应用ID);

3.实现准备评论数据,并向该接口发送数据请求,并检查是否评论成功;

代码实现:

1. 首选我们解决登陆的问题,登陆成功并记录Cookie值,成功获取登录信息后,字符拼接登陆header头,后面可用于评论。

# -*- coding:utf-8 -*- import ssl import urllib2 import cookielib import urllib import re def GetLoginCookie(user): # 网站登录接口    url = "#/auth/login"    # 此句为解决Python访问https的证书验证问题    ssl._create_default_https_context = ssl._create_unverified_context # 登录时提交的用户数据,加密前的密码为:123456    data = { 'to':'http%3A%2F%#%2Fmember%2Fmy',        't':'',        'businessCode':'',        'name':'%s'%user,        'pwd':'b2927281520eba726728c6f5e9579228a3102f1462c52d708ba8ee622b2124a97545d0e3a6d0315bd84e457e7550ab2357e3c019fe23bf4a57ab2ead172d2e9ce8ae1e167d54a4530a200ba9be5b2fbe08b7cbfe07f914c3c09ccfa37488cc531f9452f625e0195ab41ec88546378ae304f5f774aa2de8891446ff77aae799d8',         'geetest_challenge':'',        'geetest_validate':'',        'geetest_seccode':''    }
login_data = urllib.urlencode(data) # 初始化cookie容器,用于存放相关信息    cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener) # 使用存储cookie的方法访问目标网站并提交预先准备的数据    response=opener.open(url,login_data) print response.read() # 若登录成功,则获取登录成后的cookie信息    cookies = response.headers["Set-Cookie"] print cookies # cookie数据分析,并拼接下次登录访问的header    reg = re.compile(r'''(AMBI=.*?;)''')
AMBI = re.findall(reg,cookies)[0]
reg = re.compile(r'''(_AES=.*?;)''')
_AES = re.findall(reg,cookies)[0]
reg = re.compile(r'''(_ev=.*?;)''')
_ev = re.findall(reg,cookies)[0]
reg = re.compile(r'''(djtk=.*?;)''')
djtk = re.findall(reg,cookies)[0]
reg = re.compile(r'''(DJ_MEMBER_INFO=.*?;)''')
DJ_MEMBER_INFO = re.findall(reg,cookies)[0]
Cookie = AMBI+_AES+_ev+djtk+DJ_MEMBER_INFO
header = { 'Accept':'*/*c',        'Accept-Encoding':'gzip, deflate',        'Accept-Language':'zh-CN,zh;q=0.8',        'Connection':'keep-alive',        'Content-Length':'108',        'Content-Type':'application/x-www-form-urlencoded',        'Cookie':"%s"%Cookie,        'Host':'#',        'Origin':'#',        'Referer':'#',        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',        'X-Requested-With':'XMLHttpRequest'    } return header

2. 分析并对网站目标应用程序评论页面,实现自动评论

# -*- coding:utf-8 -*- import requests def DoCommint(user,appid,commint):
# 调用登陆方法获取用户登陆后的header信息
header = GetLoginCookie(user)
url = "#/comment/addcomment.html"    data = { 'rid':appid,        'rtype':'5',        'cmnt':str(commint),        'atUser':''    }
# 向评论接口发起数据请求
html = requests.post(url=url,headers=header,data=data).text
# 判断是否评论成功 if "errorMsg" in html: return 0    if len(html)>16: print "threading failed"    else: return 1

3.利用Python多线程,执行队列任务,快速完成自动评论任务

# -*- coding:utf-8 -*- import threading import random import time from AutoCommont import DoCommint
users = ["test01","test02","test03","test04","test05","test06"] while True:
threads = [] for user in users:
num = random.randint(432, 7727)
threads.append(threading.Thread(target=DoCommint, args=(user,num , '用户:%s,游戏ID:%s,测试自动评论脚本,Autor:Benjamin,AutoTestCommint!'%(user,num)))) for t in threads:
t.start()
t.join()
time.sleep(31)

程序代码逻辑实现简单,欢迎个人同仁讨论斧正,仅用于表达思想。

完整的自动评论系统应具备以下条件:

1.待评论应用ID列表数据;

2.评论数据,评论数据应需与应用ID匹配;

3.用户,能够正常登陆访问的用户数据;

4.实现高效评论队列任务的程序;

5.评论规则的控制,如:评论时间间隔,字符长度,评论内容,评论 条数限制等;

6.待优化项:登陆成功后记录cookie值,无需每次评论前登陆。

注: 请勿用于非法用途,否则后果作者概不负责

本文内容转载自网络,本着传播与分享的原则,来源/作者信息已在文章顶部表明,版权归原作者所有,如有侵权请联系我们进行删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:零基础的人,如果简单地自学Python语言
下一篇:编程语言流行度总结:Python潜力股

Python从入门到项目实战训练营开课啦!

Python语言为什么这么受人欢迎?看完这个你就知道了!

学Python去达内教育怎么样?

达内Python培训免费训练营开班啦

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省