本文实例讲述了Python实现的爬虫刷回复功能。分享给大家供大家参考,具体如下:
最近闲的无聊,就想着去看看爬虫,顺着爬虫顺利的做到了模拟登录、刷帖子等等,这里简要说一下。
使用Python2.7写的爬虫,对某论坛做模拟登陆和刷帖子、回复等等,由于之前是没有接触过爬虫,这次之后感觉爬虫很强大,能做很多事,先来贴几张图。
由于论坛不让使用相同的文字,所以调用了笑话的api,达到不同文字的目的。
该论坛使用的是cookie,所以先去获取一下cookie,顺便将cookie写到文件里面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
'''
获取cookie
'''
def get_cookie(login_data, url, testurl = None ):
filename = "cookie"
cookie = cookielib.MozillaCookieJar(filename)
hadler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(hadler)
post_data = urllib.urlencode(
{ 'logname' : 123456 , "logpass" : "123456" , "action" : "login" , })
url = 'http://*****.me/waplogin.aspx'
opener. open (url, post_data)
cookie.save(ignore_discard = True , ignore_expires = True )
print ( "获取成功" )
# print(opener.open(testurl).read())
|
先要分析该网站登录地址,登录需要的参数,如上代码
获得cookie之后,分析该论坛的回复参数,该论坛采用的是post提交,需要有帖子id,回复内容等等,分析之后得到如下代码
代码先加载文件里面的cookie,然后调用了haha这个笑话api,当然我已经将这个api的json进行了处理,这里只要笑话内容就行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
'''
回复帖子
'''
def post_reply():
filename = "cookie"
cookie = cookielib.MozillaCookieJar(filename)
cookie.load(filename, ignore_discard = True , ignore_expires = True )
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
num = 0
for i in range ( 216255 , 800000 ):
num = num + 1
huifu = urllib.urlencode(
{ 'sendmsg' : 0 , "content" : str (haha(num)), "action" : "add" , "id" : str (i), "classid" : 177 })
gradeUrl = 'http://******.me/bbs/book_re.aspx'
result = opener. open (gradeUrl)
print result.read()
print "当前第" + str (num) + " " + " 次回帖"
print ( "当前帖子id" + str (i))
sleep( 1 )
|
发帖子代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
'''
发帖子(普通帖子或者加悬赏分的帖子:并不是悬赏板块的帖子)
'''
def post_articles(book_title, book_content, classid = 177 , sendmoney = 0 ):
filename = "cookie"
cookie = cookielib.MozillaCookieJar(filename)
cookie.load(filename, ignore_discard = True , ignore_expires = True )
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
post_articles = urllib.urlencode(
{ 'sendmsg' : 0 , "book_title" : str (book_title), "action" : "gomod" , "siteid" : "1000" ,
"book_content" : str (book_content), "classid" : classid, "sendmoney" : sendmoney})
gradeUrl = 'http://*****.me/bbs/book_view_add.aspx'
result = opener. open (gradeUrl, post_articles)
print (result.read())
|
将这些代码进行进行调用就可以去刷回复了。
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_34067821/article/details/80404444