python requests爬虫模拟登录无验证码网站失败

时光未老丶 2016-09-17 11:11:21
首先,,采用python3,windows64位系统
在爬取一个网站数据的时候想试试requests模块,据说比urllib更加优秀和方便,,

import requests
from lxml import etree

s = requests.Session()
url = "http://acm.nyist.net/JudgeOnline/login.php"
data = {
'userid': '*****', # 账号密码保密= =
'password': '*****',
'btn_submit': '登录'
}
headers = {
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0",
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Cache-Control': 'max-age=0',
'Content-Length': '107',
'Host': 'acm.nyist.net',
'Origin': 'http://acm.nyist.net',
'Referer': 'http://acm.nyist.net/JudgeOnline/login.php',
}
result = s.post(url, data, headers)
print(result.url)
html2 = s.get("http://acm.nyist.net/JudgeOnline/code.php?runid=1675386")
# print(html2.text)
select2 = etree.HTML(html2.text)
content2 = select2.xpath('//*[@id="highlighter_511612"]/div[2]/text()')
for each in content2:
print(each)


在参考了基础教程以后试着写了一遍,发现get的网站都可以访问,在登录界面采用requests.Session().post()的方法去模拟登录的时候失败了,具体就是我在抓取后面的html2的内容时提示我无法查看他人代码,然后有了上面的输出result.url,发现还是原来的login页面没有变化,后来查了很多资料(好吧很多资料找不到)把留言器审查元素的headers全拿来了也失败了,不知道是不是方法就错了,求大神指点T.T
...全文
394 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
张强1990 2016-09-18
  • 打赏
  • 举报
回复
登录url是这个 http://acm.nyist.net/JudgeOnline/dologin.php?url=http%3A%2F%2Facm.nyist.net%2FJudgeOnline%2Fprofile.php

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧