淘宝模拟登陆抓取失败
# __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
还是小白
用户名和密码省去嘞
得到的还是未登录时的代码,不知道自己少了什么,有成功的大神能告知一下咩
注意在發送請求的時候附上cookie~
建議在模擬登陸的時候注意下面幾點:
自己在瀏覽器看一下正常登入時發出去的請求:
提交了哪些欄位?
帶了哪些cookie?
請求的位址是否有參數?
下面是我爬取雲南大學圖書館借閱資訊的爬蟲。雲端大圖書館登入系統的預設密碼是學號後八位。
那麼它在提交表單的時候不只是用戶名和密碼,還有一個隱藏的
lt
字段,這個字段是生成登錄表單的時候寫在隱藏的input裡面,所以必須提取;在post表單的地址裡面,還有一個jsessionid字段,這個也是要自己從登陸頁面提取加上的;
總之,希望我的解決思路能給你一些引導。
反正見招拆招~
當你模擬的登入資訊跟正常提交的資訊伺服器察覺不出異常的時候,就登陸成功咯~
所以,非常非常重要的一點--- 模仿正常的登入動作,在瀏覽器的network調試工具裡不斷琢磨吧。
下面附上我前一段時間寫的模擬登陸爬蟲
話說為啥是淘寶的地址呢==直接用自己登陸的cookie就好了,知乎好像也還有驗證碼的