V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
stronger
V2EX  ›  Python

Python 模拟登陆 BBS 的问题

  •  1
     
  •   stronger · 2015-04-26 21:43:13 +08:00 · 3049 次点击
    这是一个创建于 3490 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想模拟登陆学校的bbs,即bbs.nankai.edu.cn,总是不成功,求大神帮助!!!

    第 1 条附言  ·  2015-04-27 08:43:54 +08:00
    # coding=utf-8

    import urllib,urllib2,cookielib,requests
    from bs4 import BeautifulSoup

    urls = 'http://bbs.nankai.edu.cn/user/index/5987'

    # 产生cookie
    def run(urls):
    cookie=cookielib.CookieJar()
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    # 需要POST的数据
    username = raw_input("username:")
    password = raw_input("password:")
    login_data = urllib.urlencode({"all_name": username,
    "all_pwd": password,
    "type": "user",
    "request": "login",
    "all_remember": "true"})
    header = {
    'User-Agent': "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)",
    'Host': 'bbs.nankai.edu.cn',
    'Connection': 'keep-alive',
    #'Content-Length': '79',
    #'Accept': '*/*',
    #'Origin': 'http://bbs.nankai.edu.cn',
    'X-Requested-With': 'XMLHttpRequest',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    #'Referer': 'http://bbs.nankai.edu.cn/',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6'
    }
    r = urllib2.Request(
    url = 'http://bbs.nankai.edu.cn/static/sky/dist/js/welcome.js',
    data = login_data,
    headers = header
    )
    #res=urllib2.urlopen(r)
    response = opener.open(r)
    #result = opener.open('http://bbs.nankai.edu.cn/group/article/303089')
    for item in cookie:
    print 'Name = '+item.name
    print 'Value = '+item.value
    #content=urllib2.urlopen(r)
    #print response.read()
    result=opener.open('http://bbs.nankai.edu.cn/group/article/303089')
    print result.read()


    if __name__ == '__main__':
    run(urls)
    11 条回复    2015-04-28 10:24:12 +08:00
    lichifeng
        1
    lichifeng  
       2015-04-26 22:19:06 +08:00 via Android
    试一下cterm的脚本 也是python的 不要自己写爬虫
    churchmice
        2
    churchmice  
       2015-04-27 01:57:49 +08:00 via Android
    都没code让我们怎么帮你?
    stronger
        3
    stronger  
    OP
       2015-04-27 08:44:36 +08:00
    @churchmice 您好,已附加了代码,麻烦您帮我看一下吧!
    stronger
        4
    stronger  
    OP
       2015-04-27 08:45:21 +08:00
    @lichifeng 您指的是类似scrapy这样的框架么
    luoyibu
        5
    luoyibu  
       2015-04-27 12:38:22 +08:00
    requests 和 BeautifulSoup 都没看你用到。。 用requests可以不用自己管理cookies,另外需要抓包分析下请求带了哪些额外的参数吧,基本上简单的能搞定。。
    qaulau
        6
    qaulau  
       2015-04-27 12:45:46 +08:00
    stronger
        7
    stronger  
    OP
       2015-04-27 17:09:37 +08:00
    @qaulau 我用fiddler抓包也发现了这个地址,但是打开是404错误,应该不是这个地址吧?
    stronger
        8
    stronger  
    OP
       2015-04-27 17:14:46 +08:00
    @luoyibu 嗯,目前还没用到bs,因为连登陆都没成功呢,,,,我在网上查了好多,但无功而返,大神能帮下忙么?我可以把账号密码分享给您
    gcc2000
        9
    gcc2000  
       2015-04-27 23:32:20 +08:00
    楼主给我私信个账号,我帮你试试看
    lichifeng
        10
    lichifeng  
       2015-04-28 06:36:13 +08:00 via Android
    @stronger 不是 你搜索cterm就知道啊 用来登录bbs的东西 支持python脚本
    stronger
        11
    stronger  
    OP
       2015-04-28 10:24:12 +08:00
    @gcc2000 好的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.