Rumah > Soal Jawab > teks badan
淘宝模拟登陆抓取失败
# __author__ = ''
# -*- coding: utf-8 -*-
import requests
import re
s = requests.session()
login_data = {'email': 'xxx', 'password': 'xxx', }
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
'Host':'log.mmstat.com',
'Referer':'https://www.taobao.com/'
}
# post 数据实现登录
s.post('https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F', login_data, headers=headers)
# 验证是否登陆成功,抓取'淘宝'首页看看内容
r = s.get('https://www.taobao.com')
print r.text
还是小白
用户名和密码省去嘞
得到的还是未登录时的代码,不知道自己少了什么,有成功的大神能告知一下咩
迷茫2017-04-17 17:34:45
Berhati-hati untuk melampirkan kuki semasa menghantar permintaan~
Adalah disyorkan untuk memberi perhatian kepada perkara berikut semasa mensimulasikan log masuk:
Lihat permintaan yang dihantar semasa log masuk biasa dalam penyemak imbas:
Apakah medan yang diserahkan?
Kuki apa yang anda bawa?
Adakah alamat yang diminta mempunyai parameter?
Berikut ialah perangkak yang saya gunakan untuk merangkak maklumat peminjaman Perpustakaan Universiti Yunnan. Kata laluan lalai untuk sistem log masuk Perpustakaan Yunda ialah lapan digit terakhir nombor pelajar.
Kemudian ia bukan sahaja nama pengguna dan kata laluan semasa menghantar borang, tetapi juga medan lt
tersembunyi. Medan ini ditulis dalam input tersembunyi apabila borang log masuk dijana, jadi ia mesti diekstrak dalam pos Terdapat juga medan jsessionid dalam alamat borang, yang anda juga perlu ekstrak dan tambah dari halaman log masuk;
Ringkasnya, saya harap idea penyelesaian saya dapat memberi anda sedikit panduan.
Apabila pelayan mengesan tiada keabnormalan antara maklumat log masuk simulasi anda dan maklumat yang biasa diserahkan, log masuk berjaya~
Tiru tindakan log masuk biasa
, terus memikirkannya dalam alat penyahpepijat rangkaian penyemak imbas.
Dilampirkan di bawah ialah perangkak log masuk simulasi yang saya tulis suatu masa dahulu
#coding:utf-8
#!/usr/bin/python
import HTMLParser
import urlparse
import urllib
import urllib2
import cookielib
import string
import re
import sys
import time
reload(sys)
sys.setdefaultencoding('utf-8')
COOKIE_FLAG = True # true使用这次cookie false使用上次cookie
hosturl = "http://202.203.222.202/cas/login"
history = "http://202.203.222.202/myspace/reader/book/historyBorrow?pageSize=200&pageNo=1"
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
#获取 lt
def getHTML(stdNum):
cookie = cookielib.CookieJar()
handler=urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
response = opener.open(hosturl)
for item in cookie:
if item.name == "JSESSIONID":
jsessionId = item.value
loginHTML = response.read()
searchString = 'name="lt" value='
try:
index = loginHTML.index(searchString)
except Exception as err:
print "err:\t" + err
return False
lt = loginHTML[index +17:index +56]
# print "lt:\t" + lt
print "JD: "+jsessionId
targetPost = 'http://202.203.222.202/cas/login;jsessionid='+ jsessionId + '?service=http%3A%2F%2F202.203.222.202%2Fmyspace%2Freader%2Findex'
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
"Host": "202.203.222.202",
"Origin": "http://202.203.222.202",
"Referer": "http://202.203.222.202/cas/login?service=http://202.203.222.202/myspace/reader/index",
"Upgrade-Insecure-Requests": 1,
}
postData = {
"username":stdNum,
"password":stdNum[3:],
"lt": lt,
"execution": 'e1s1',
"_eventId": "submit",
"submit": "登录",
}
postData = urllib.urlencode(postData)
request = urllib2.Request(targetPost, postData, headers)
logResult = urllib2.urlopen(request).read().decode("utf8")
if "登录系统" in logResult:
print "失败啦!"
return "login failed "
historyBorrowPage = urllib2.urlopen(history)
historyHTML = historyBorrowPage.read().decode('utf8')
if "登录系统" in historyHTML:
return False
else:
logout = "http://202.203.222.202/myspace/reader/logout"
logoutYa = urllib2.Request(logout)
logoutPage = urllib2.urlopen(logoutYa)
return historyHTML
怪我咯2017-04-17 17:34:45
Mengapa ia alamat Taobao? Hanya gunakan kuki yang anda gunakan untuk log masuk. Zhihu nampaknya mempunyai kod pengesahan juga