1,练习学习涉及bs4解析网页
2,登录时对登录有formhash设定
3,需使用fiddler抓包工具抓到
4,主要为requests练习
5, 练习前请先注册一个账号,网址见下
6,因涉及个人隐私,隐私位置用 'x'代替,请理`
解!TKS
登录url='https://www.laianbbs.com/'
import requests
from bs4 import BeautifulSoup
#创建会话(关键)
s=requests.Session()
#访问登录页面,获取登录所需要的一些参数
get_url='https://www.laianbbs.com/member.php?mod=logging&action=login&referer='
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
}
r=s.get(get_url,headers=headers)
#生成soup对象,获取formhash值
soup=BeautifulSoup(r.text,'lxml')
formhash=soup.select('input[name=formhash]')[0]['value']
#向指定的post发送请求
post_url='https://www.laianbbs.com/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=Lz2Yz&inajax=1'
#通过fiddler抓包工具获得formdata
formdata={
'formhash':formhash,
'referer':'https://www.laianbbs.com/space-uid-236750.html',
'username':'xxxxxxxxx',#隐私,实际请通过fiddler抓包工具获得
'password':'xxxxxxxxx',#隐私,实际请通过fiddler抓包工具获得
'questionid':'0',
}
#post发送请求
r=s.post(url=post_url,headers=headers,data=formdata)
#更改当前的编码方式,默认是utf8 实际是gbk(关键,不然为乱码)
r.encoding='gbk'
# print(r.text)
#访问登录后的url
info_url='https://www.laianbbs.com/space-uid-236750.html'
r=s.get(url=info_url,headers=headers)
print(r.text)
登录后(只截图部分)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>hcc1222的空间 - 来安论坛 - Powered by Discuz!</title>
<script type="text/javascript">