新浪微博美女图片的爬虫
一 引言
由于毕设要获取微博上的一些数据,但是微博的openAPI不仅有次数限制,还不方便获取某一类别的数据,所以还是爬虫方便一些,自己需要什么数据就获取什么数据,不过能够调用API实现的还是调吧,毕竟微博的反爬机制还是很强的。作为新手就选择爬取手机网页的新浪微博,相对电脑网页上的反爬要好多了。
二 新浪微博的模型登陆
1、获取微博的验证码
微博的验证码没有那么好获取,经过对站点分析,在获取验证码的时候请求的数据有
“checkpin” “entry” “su” “callback”这四个参数,而su是经过base64对用户名加密的,callback则是对当前时间进行了变换。获取了验证码,自动识别验证码难度挺大,就选择人工识别并输入。
def login_pre(username, Session):
'''
获取验证码
'''
su = (base64.b64encode(quote_plus(username).encode('utf-8'))
).decode('utf-8') # 用户名用base64加密
pre_Data = {
"checkpin": '1',
"entry": 'mweibo',
"su": su,
"callback": 'jsonpcallback' + str(int(time.time() * 1000) + math.floor(random.random() * 100000))
}
pre_headers = headers.copy()
pre_headers['Host'] = 'login.sina.com.cn'
pre_headers['Referer'] = 'https://passport.weibo.cn/signin/login'
pre_url = 'https://login.sina.com.cn/sso/prelogin.php'
pre_text = Session.get(pre_url, params=pre_Data, headers=pre_headers).text
try:
pre_json = json.loads(pre_text[0])
if pre_json[