本博文主要介绍一下如何利用的python的requests包如何模拟登录移动版微博https://passport.weibo.cn/sso/login,好了废话不多说,下面主要介绍一下基本步骤:
运行环境及软件介绍:python2.7.12,pycharm5.0,火狐浏览器
1.先看看要登录的页面
2.按F12调出开发者工具,输入用户名、密码,开始抓包,获取登录post时需要传递的参数
3.开始代码模拟登录吧
import requests
from bs4 import BeautifulSoup
url=r'https://passport.weibo.cn/sso/login'
#构造参数字典
data={'username':'用户名',
'password':'密码',
'savestate':'1',
'r':r'',
'ec':'0',
'pagerefer':'',
'entry':'mweibo',
'wentry':'',
'loginfrom':'',
'client_id':'',
'code':'',
'qq':'',
'mainpageflag':'1',
'hff':'',
'hfp':''}
#headers,防屏
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Connection':'close',
'Referer':'https://passport.weibo.cn/signin/login',
'Host':'passport.weibo.cn'
}
#模拟登录
session=requests.session()
session.post(url=url,data=data,headers=headers)
#测试,爬取周志华微博原创内容
for page in range(1,42):
response=session.get('https://weibo.cn/zhouzh2012?filter=1&page=%d' % page).content
soup=BeautifulSoup(response,'lxml')
infos=soup.find_all('span','ctt')
for info in infos[3:]:
print info.get_text()
运行结果部分截图:
总结一下,模拟登录其实只是一个开始而已,比较简单,主要是抓去登陆时post的数据,后续可以根据自己需要爬取所需的页面信息,今天就介绍到这里,欢迎讨论