返回信息流求助各位大大,python模拟登陆蛋蛋网,知乎等都能成功,到了我有就报url 404了。求解
抓包知登陆时向'http://bbs.byr.cn/user/ajax_login.json' post登录信息
但模拟登陆向以上url post时则报404,求助。。。。
# -*- coding: utf-8 -*-
# !/usr/bin/python
import urllib2
import urllib
import cookielib
import re
auth_url = 'http://bbs.byr.cn/user/ajax_login.json'
home_url = 'http://bbs.byr.cn/'
# 登陆用户名和密码
data={
'id':'*******',
'passwd':'***********'
}
# urllib进行编码
post_data=urllib.urlencode(data)
# 发送头信息
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Referer' : 'http://bbs.byr.cn/index',
'Accept':'application/json, text/javascript, */*; q=0.01',
'Host':'bbs.byr.cn'
}
cookieJar=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
urllib2.install_opener(opener)
urllib2.urlopen(home_url)
# 获取cookie
req=urllib2.Request(auth_url,post_data,headers=headers )
opener.open(req)
a = opener.open('http://bbs.byr.cn/#!board/WorkLife')
# 显示结果
dd=open('woyou.txt','w+')
dd.write(a.read())
dd.close()
这是一条镜像帖。来源:北邮人论坛 / python / #12975同步于 2016/3/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
[问题]python模拟登陆北邮人论坛失败
casemonkey
2016/3/26镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
好像在headers里除了'user-agent'再加上'Host': 'bbs.byr.cn', 'X-Requested-With': 'XMLHttpRequest', 'Connection': 'keep-alive'就可以了
@bill220 看了这位的代码 帖子在 https://bbs.byr.cn/#!article/Python/14291
纯搬运0.0
【 在 cindyoshinee 的大作中提到: 】
: 好像在headers里除了'user-agent'再加上'Host': 'bbs.byr.cn', 'X-Requested-With': 'XMLHttpRequest', 'Connection': 'keep-alive'就可以了
: @bill220 看了这位的代码 帖子在 https://bbs.byr.cn/#!article/Python/14291
: 纯搬运0.0
如果作为纯客户端的话,keepalive加了其实是增server负担,单台客户端并发不大。但是作为爬虫的话,可以加上,减少请求时间。而且keepalive也需要server开启才行,我觉得论坛不会开启的吧,场景不合适。
文章就是搬运的,哈哈
【 在 casemonkey 的大作中提到: 】
: 求助各位大大,python模拟登陆蛋蛋网,知乎等都能成功,到了我有就报url 404了。求解
: 抓包知登陆时向'http://bbs.byr.cn/user/ajax_login.json' post登录信息
: 但模拟登陆向以上url post时则报404,求助。。。。
: ...................
楼主成功爬取了吗 我写的跟你类似 模拟登陆应该是成功了 但是再打开论坛其它网页爬取的时候 又显示没登录了 cookie也没问题 求解?
最后问下:
opener.open('http://bbs.byr.cn/#!board/WorkLife')这一句:
我把url用urllib.request.Request,包了Header进去,然后再用opener.open()打开包完的Request对象,获取到的就是空……
是opener.open只能直接打开url嘛?