大家帮我看看这个模拟登陆怎么总是报错

hellsb 2016-04-22 08:22:49

#! /usr/bin/python
# -*- coding: utf-8 -*-
import urllib.request
import http.cookiejar
import re
class WebPage():
def __init__(self,url):
self.url = url
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
self.shujuxinxi(self.url,opener)#调用数据编码函数

def shujuxinxi(self,url,opener):
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
header = {'User-Agent':user_agent,'Refresh':'http://account.lvye.cn/accounts/login/','Accept-Encoding': 'gzip, deflate, sdch'}
request = urllib.request.Request(self.url,None,header)
response = urllib.request.urlopen(request)
gethtml = response.read().decode('utf-8')
regx = r"<input type='hidden' name='csrfmiddlewaretoken' value='(\S+?)' />"
pipei = re.search(regx,gethtml)
if pipei:
user_info = {}
user_info['username'] = 'teshipachong'
user_info['password'] = '2FD055C53EE6830E48852D57EDF2698B'
user_info['cap_code'] = ''
user_info['auto'] = 'on'
user_info['csrfmiddlewaretoken'] = pipei.group(1)
user_info['next'] = 'http%3A%2F%2Fbbs.lvye.cn%2F'
user_info['client_id'] = '1'
user_info['state'] = 'None'
user_info['cap_key'] = ''
user_info['login_code'] = ''
#print(user_info['csrfmiddlewaretoken'])
header = {'User-Agent':user_agent,'Refresh':'http://account.lvye.cn/accounts/login/'}
data = urllib.parse.urlencode(user_info).encode(encoding='utf-8')

self.login(self.url,data,header,opener)
def login(self,url,data,header,opener):
request = urllib.request.Request(self.url,data,header)
response = opener.open(request)

wp = WebPage('http://account.lvye.cn/accounts/login/?')


开始没加入Accept-Encoding这个的时候总是报403错误,加了后报编码错误。

引用
Traceback (most recent call last):
File "D:\py\pythonCrawler\src\Crawer_lvye1.py", line 42, in <module>
wp = WebPage('http://account.lvye.cn/accounts/login/?')
File "D:\py\pythonCrawler\src\Crawer_lvye1.py", line 11, in __init__
self.shujuxinxi(self.url,opener)#调用数据编码函数
File "D:\py\pythonCrawler\src\Crawer_lvye1.py", line 18, in shujuxinxi
gethtml = response.read().decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
...全文
131 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,737

社区成员

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

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