求助: python 自动登录挖财 bbs 后,回帖,提示:未登陆,求助求助求助啊!妹子第一次发帖

2015-06-26 19:41:54 +08:00
 sophie2805
#-*- coding:utf-8 -*-
__author__ = 'Sophie2805'

import urllib
import urllib2
import time
import re
import cookielib

jar = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(jar)
opener = urllib2.build_opener(handler)
params ={
'user.account':'***',
'user.pwd':'***'
}
headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0'}
url = 'http://bbs.wacai.com/'#/forum-16056-1.html
req = urllib2.Request(url, headers=headers)
bbs_page = urllib2.urlopen(req,urllib.urlencode(params))
bbs_html= bbs_page.read()
cookie = bbs_page.info()['set-cookie']
print cookie
pattern_2 = 'name="formhash" value="' + '.+"'
p_2 = re.compile(pattern_2)
result_2 = p_2.findall(bbs_html)
'''
title = '签到有礼'+(time.strftime("%m.%d")+'0').strip('0')+'每天签到得铜钱,每人限回一次'
pattern_1 = '<.+>'+title
p_1 = re.compile(pattern_1)

pattern_2 = 'name="formhash" value="' + '.+"'
p_2 = re.compile(pattern_2)
result_1 = p_1.findall(bbs_html)
result_2 = p_2.findall(bbs_html)


'''
formhash = result_2[0][result_2[0].find('value="')+7:result_2[0].find('value="')+15]
link_today = 'http://bbs.wacai.com/forum.php?mod=post&action=reply&fid=16056&tid=644887&extra=&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1'#'http://bbs.wacai.com/'+ result[0][result[0].find('a href="')+8:result[0].find(' onclick=')-1]
reply={
'formhash':formhash,
'message':'貌似是赠送到余额里面的'
}
h ={
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0',
'Referer':'http://bbs.wacai.com/thread-645253-1-1.html',
'Host':'bbs.wacai.com',
'Cookie': cookie

}
req_thread = urllib2.Request(link_today,headers=h)
page = urllib2.urlopen(req_thread,urllib.urlencode(reply))
print '~~~~~~'
print page.info()['set-cookie']
print '~~~~~'
print page.read()
3395 次点击
所在节点    Python
17 条回复
sophie2805
2015-06-26 19:58:03 +08:00
irgil
2015-06-26 19:58:53 +08:00
这跟你是不是妹子有什么关系
hansnow
2015-06-26 20:00:54 +08:00
用requests.Session()试试
hahasong
2015-06-26 20:19:25 +08:00
不爆照然并卵
horizon
2015-06-26 20:21:39 +08:00
@irgil 赞同,和你性别有什么关系
cc7756789
2015-06-26 20:37:03 +08:00
论坛是否有验证码?另外用request要简单很多,也容易判断哪里可能出错。
sophie2805
2015-06-26 21:08:31 +08:00
@hansnow 谢谢,requests确实简单很多,但是登陆成功后,我需要获取到页面源码,把里面的formhash找出来,我翻了很多API文档,没找到r = s.post(login_url,login_post_data) 怎么获取登陆成功后页面html源码
sophie2805
2015-06-26 21:08:51 +08:00
@cc7756789 谢谢,requests确实简单很多,但是登陆成功后,我需要获取到页面源码,把里面的formhash找出来,我翻了很多API文档,没找到r = s.post(login_url,login_post_data) 怎么获取登陆成功后页面html源码
sophie2805
2015-06-26 21:39:52 +08:00
@cc7756789 没有验证码,问题解决了,多谢
mystryl
2015-06-26 21:49:42 +08:00
@sophie2805 http://wuchong.me/blog/2014/04/24/easy-web-scraping-with-python/ 我看这个帖子,研究两天写了第一个爬虫,无python基础。。就学过大学的C
这两天停不下来写到第三个了,还整合了TelegramBot做推送,python真好玩!
sophie2805
2015-06-26 21:58:59 +08:00
@hansnow 试过了,登陆成功了,但是后面post回帖的时候,还是提示未登陆 = =#
sophie2805
2015-06-26 21:59:13 +08:00
@sophie2805 试过了,登陆成功了,但是后面post回帖的时候,还是提示未登陆 = =#
sophie2805
2015-06-26 22:04:15 +08:00
@hansnow requests.Session( )不是可以保持连接的吗

https://gist.github.com/sophie2805/c2e77d61eed2bfdd7f3a

8d41cd5f
<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[抱歉,您尚未登录,没有权限在该版块回帖<script type="text/javascript" reload="1">if(typeof errorhandle_fastpost=='function') {errorhandle_fastpost('抱歉,您尚未登录,没有权限在该版块回帖', {});}</script>]]></root>
hansnow
2015-06-26 23:57:30 +08:00
@sophie2805 把header增加一些呢?尽量做到和浏览器发出的请求完全一样
sophie2805
2015-06-27 00:15:28 +08:00
@hansnow 试过了,还是提示未登陆,难道挖财这个bbs登陆后,在页面间跳转,sessionid会变?!
crab
2015-06-27 00:47:10 +08:00
登录后成功后返回的数据<script type="text/javascript" src="。应该是JS没跳转导致,这边的路径你取出来,再去请求一次,就可以了。
sophie2805
2015-06-27 01:52:05 +08:00
@crab 原来如此,已经OK了!谢谢螃蟹兄。之前一直都没有在意登陆post之后的这两个get~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/201435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX