require("gb2312toutf8")
local http = require "socket.http"
local surl = "http://www.jokeji.cn"
local function getUrl(c)
if c:sub(,) == "/" then
return surl .. c
else
return surl .. "/" .. c
end
end
-- 发表说说
local QQfabiao = socket.protect(function(con)
function fabiao(con)
local t = {}
local reqt = {
url = "http://taotao.qzone.qq.com/cgi-bin/emotion_cgi_publish_v6?g_tk=881884919",
sink = ltn12.sink.table(t)
}
local b = [[code_version=1&con=]] .. con ..[[&feedversion=1&format=fs&hostuin=1246747572&
paramstr=1&pic_template=&qzreferrer=http%3A%2F%2Fuser.qzone.qq.com%2F1246747572%2Finfo
center%3Fptsig%3D6JR2IckHBsW62y*a8Yyk-D5kl2*LY57C7ekyMPUwblQ_&richtype=&richval=&specia
l_url=&subrichtype=&syn_tweet_verson=1&to_sign=0&to_tweet=0&ugc_right=1&ver=1&who=1]]
if b then
reqt.source = ltn12.source.string(b)
reqt.headers = {
["content-length"] = string.len(b),
["content-type"] = "application/x-www-form-urlencoded",
["cookie"] = "pgv_pvid=2921257289; pt2gguin=o1246747572;
ptcz=f19275426fb17fa422bc3db0ea1c152651d9c750dc26c80c5e96540ad52e53a6;
o_cookie=; RK=i3cumo4Hct; pgv_pvi=; p_o2_uin=;
ptui_loginuin=; qqmusic_uin=; qqmusic_key=;
qqmusic_fromtag=; pgv_info=ssid=s5823528911; skey=@dbKiNxZAF; ptisp=ctc;
uin=o1246747572; QZ_FE_WEBP_SUPPORT=; cpu_performance_v8=; __Q_w_s__QZN_TodoMsgCnt=;
__Q_w_s_hat_seed=; __Q_w_s__appDataSeed=; Loading=Yes; qzmusicplayer=qzone_player_1246747572_1455773155776;
blabla=dynamic; zzpaneluin=; zzpanelkey=; p_skey=b78i01A*1Yq-*TEtkbR6QRPA3dIZIrjhnmmAyz8UW7g_;
pt4_token=TZ8e*Y1mPItaWRJU4ROK62LyO5gycJyNsDHyXA-GV4A_; p_uin=o1246747572"
}
reqt.method = "POST"
end
local code, headers, status = socket.skip(, http.trequest(reqt))
return table.concat(t), code, headers, status
end
return fabiao(con)
end)
-- 延时n秒
local function sleep(n)
if n<= then return end
local cur = os.time()
while os.time() - cur ~= n do
end
end
local body,ret = http.request(getUrl("list18_1.htm"))
body = mylib.gb2312toUtf8(body)
local filter = {}
filter["/jokehtml/ym/201602142231174.htm"] =
filter["/jokehtml/ym/2016020308024982.htm"] =
function getCon(body)
for w in string.gmatch(body, "href=\"(.-)\"") do
if string.find(w,".*%d.htm") then
local body,ret = http.request(getUrl(w))
if(body and #body> and not filter[w]) then
body = mylib.gb2312toUtf8(body)
if body:find("<P>") then
for w in string.gmatch(body, "<[pP]>(.-)</[pP]>") do
local s,_ = string.gsub(w,"<[aA].*</[aA]>","")
s = string.gsub(s,"<BR>","\n")
s = string.gsub(s,"<[spanSPAN]>.-</[spanSPAN]>","")
s = string.gsub(s,"%d+、","")
if(#s>) then
s = s .. "\n\n-------- 来自小强的爬虫 --------"
end
-- print(s)
local b,r = QQfabiao(s)
sleep()
end
else
getCon(body)
end
end
end
end
end
getCon(body)

自动发表QQ空间说说的更多相关文章

  1. php模拟用户自动在qq空间发表文章的方法

    我们这里是一个简单的利用php来模拟登录后再到QQ空间发送文章的一个简单的程序,有需要的朋友可以参考,或改进可以给我意见,代码如下: <?php //模拟get post请求函数 http:// ...

  2. 关于恶意说说自动在QQ空间转发的机制

    有些很讨厌的带链接说说,只要你在手机打开它,就会自动转发,内容极其不雅 一怒之下我决定看个究竟首先,在此页开头有此关键语句: <iframe src="http://rtb.map.q ...

  3. python基于selenium实现自动删除qq空间留言板

    py大法好,让你解放双手. 脚本环境 python环境,selenium库,Chrome webdriver驱动等. 源码 # coding=utf-8 import datetime import ...

  4. Atitit qzone qq空间博客自动点赞与评论工具的设计与实现

    Atitit qzone qq空间博客自动点赞与评论工具的设计与实现 Qzone发送评论的原理 首先,有个a标签, <a class="c_tx3" href="j ...

  5. QQ空间自动发广告解决方法

    最近空间好多人QQ都中了毒.每天我都有几十个好友刷空间话费.流量广告! QQ空间自动发广告的原因: 最近使用了刷赞或者其他QQ外挂软件(有些开发者或破解者会在这样的软件上留后门,请自己判断). 或者最 ...

  6. 技术揭秘“QQ空间”自动转发不良信息

    大家经常会看到QQ空间自动转发一些附带链接的不良信息,即便我们的QQ密码并没有被盗取.最近通过对一个QQ空间自动转发链接进行分析,发现该自动转发机制通过利用腾讯网站存在漏洞的页面,精心构造出利用代码获 ...

  7. 手机QQ空间自动点赞登录

    学以致用~使用 Appium 模拟人类操控手机行为 V2.0在手机上运行,目前实现以下功能: 1.小黑屋模式,一分钟内给好友发100条消息然后进了好友的小黑屋 2.定时发消息提醒对象多喝热水~ 3.对 ...

  8. mui开发app之多图压缩与上传(仿qq空间说说发表)

    欲实现效果图 提出需求点: 用户可自由添加删除替换多张图片,并且显示相应缩略图,限制为8张 用户可选择压缩图或直接上传原图功能 返回提醒用户会丢失填写的信息 下面一个个实现上述需求,从简单到复杂: 需 ...

  9. Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析

    QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:https://github.com/20100507/Qzone [没有加入多线程,希望你可以参与进 ...

随机推荐

  1. easyui更改messager的OkCancel按钮为(中文)确定取消

    jquery-easyui默认情况下,消息框的按钮文字是英文的OK  Cancel,但可以通过提供的方法进行修改,如: $.extend($.messager.defaults,{ ok:" ...

  2. jQuery 设置图片 src 的2种方法

    // 方法1 $('#imgValidateCode').attr("src", data.CodeUrl); // 方法2 var self = $("#refresh ...

  3. [Xcode 实际操作]二、视图与手势-(11)UITapGestureRecognizer手势之长按

    目录:[Swift]Xcode实际操作 本文将演示使用视图的长按手势,完成视图的交互功能. import UIKit class ViewController: UIViewController { ...

  4. 多线程中join()

    这个鬼东西百度了好久没弄明白,大佬们代码一粘贴好了完事,借助官方api终于是理解了,当然如果有问题欢迎大家用键盘来羞辱我. 首先  join有什么用?   他是用来确定线程何时结束的 , Thread ...

  5. route(2018.10.24)

    建出最短路图之后\(topsort\)即可. 具体思路: 先用\(dijkstra\)算法在原图中跑出\(1\)号点到\(i\)号节点的最短距离\(dist_1(i)\),将所有边反向后用\(dijk ...

  6. [Python]IndentationError: unindent does not match any outer indentation level

    这个是缩进没对齐 可能是混用了tab与空格,到这里显示空白就可以看出来.

  7. java数据结构----哈希表

    1.哈希表:它是一种数据结构,可以提供快速的插入操作和查找操作.如果哈希表中有多少数据项,插入和删除操作只需要接近常量的时间.即O(1)的时间级.在计算机中如果需要一秒内查找上千条记录,通常使用哈希表 ...

  8. java中数据的存放位置

    引用自java编程思想四----2.2.1 程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据:(1) 寄存器.这是最快的保存区域,因为它位于和其 ...

  9. GYM 101673F(树计数)

    树上每个割点计算一下各个size的组合相乘再相加为第一问答案,取最大的:再把本答案中最大的两个size相乘减掉,为第二问答案. const int maxn = 1e4 + 5; int n, siz ...

  10. echarts 百度地图 json

    百度ECharts地图Json数据在线下载 最近需要写一个echarts地图统计表,苦于弄不到对应的地图json文件, CSDN 上下载的很多不完整或者不能用,功夫不负苦心人找到了这个. 阿里云地图选 ...