python爬虫入门 练习三 登录无加密网站 模拟登录 (post提交)

前言

作为requests.post的练习 本次就比较简单了 代码比之前的不知道少了多少23333
这次只是选了一个登录只是简单的 post 账户名和密码 的论坛 知乎和其他网站现在都有要用打某个页面下载后某个json文件的关键值取作hash 验证是不是机器人醉了 目前还没有学会

正文

这里我检验自己的方式是 模拟登录 获得 刚注册系统发来的提示信息

步骤1

既然是用post 进行登录 我们显然要知道post到那个url
这里我使用IE的Devtools 获得找到post方法对应的url F12
这里先自己手动登录找到post请求在这里插入图片描述

步骤2

我们想要获得登录之后的数据 首先要确保自己爬虫登录后是保持链接的
这里有
session = requests.Session() 能请求保持某些参数

步骤3

登录并获得系统私信代码
登录代码

headers = {
   'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362'
}
data = {
   'username': '',
   'password': ''
}
session = requests.Session()
session.post(url='https://www.1point3acres.com/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1', headers=headers, data=data)

获得 系统私信代码 进入消息页面 找到html对应路径就好 如果你看了前2练习 这里应该非常简单
这里看到页面是gdk 文件写入encoding(‘gb2312’)

res = session.get(url='https://www.1point3acres.com/bbs/home.php?mod=space&do=notice&view=system', headers=headers, timeout=5)
print(res.encoding)
soup = BeautifulSoup(res.text)
f = open('html.txt', "w+", encoding='gb2312')
f.write(res.text)
f.close()

chk = soup.find('dd', class_='ntc_body')
f = open('ymsfd_login/chk.txt', 'w+')
f.write(chk.text)
f.close()

以下完整代码

import time
import requests
from bs4 import BeautifulSoup

headers = {
   'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362'
}
url = 'https://www.1point3acres.com/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1'
data = {
   'username': '',
   'password': ''
}
session = requests.Session()
session.post(url='https://www.1point3acres.com/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1', headers=headers, data=data)

res = session.get(url='https://www.1point3acres.com/bbs/home.php?mod=space&do=notice&view=system', headers=headers, timeout=5)
print(res.encoding)
soup = BeautifulSoup(res.text)
f = open('html.txt', "w+", encoding='gb2312')
f.write(res.text)
f.close()

chk = soup.find('dd', class_='ntc_body')
f = open('ymsfd_login/chk.txt', 'w+')
f.write(chk.text)
f.close()
session.close()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值