网站制作 天津,网站域名备案流程,科技馆,做照片视频的网站python爬虫5#xff1a;requests库-案例3 前言 python实现网络爬虫非常简单#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点#xff0c;方便以后复习。 申明 本系列所涉及的代码仅用于个人研究与讨论#xff0c;并不会对网…python爬虫5requests库-案例3 前言 python实现网络爬虫非常简单只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点方便以后复习。 申明 本系列所涉及的代码仅用于个人研究与讨论并不会对网站产生不好影响。 目录结构 文章目录 python爬虫5requests库-案例31. 目标2. 详细流程2.1 代理池的构建2.2 目标确定2.3 真实url确定2.4 代码 3. 总结 1. 目标
本次案例的主要目标是帮助大家熟悉requests库中的会话维持技巧、代理构建等技巧。
再次说明案例本身并不重要重要的是如何去使用和分析另外为了避免侵权之类的问题我不会放涉及到网站的图片希望能理解。
2. 详细流程
2.1 代理池的构建
代理池的作用之前已经讲过了但是如何构建代理池呢一般来说都是将那些可以使用的代理IP放入数据库中后面写爬虫程序的时候再调用因为代理池是可以一直使用的工具。
我之前写过一个脚本就是利用一个爬虫专门去爬免费代理网站的代理IP然后再写个爬虫去爬取目标网站。不过这里我们就简单来把一些可用的代理IP放入一个字典中即可。
2.2 目标确定
这次我换了一个小网站具体地址我就不放了。
首先利用上一篇的知识虚假登录获取data参数值结果如下 可以发现的是参数构建如下
data {action : user_login,username : 账号,password : 密码,rememberme : 1
}2.3 真实url确定
在上一讲由于没能实际运行代码所以忘记讲述这一点了。
就是我们登录页面的url有时候并不是我们在网页上看到的url比如这个案例中我在网页上看到的登录网址为
xxxxxx_login.html 但是实际上我通过上面的POST页面发现真实的网址其实是一个名为xxxxx.php页面所以大家一定要以抓取的POST页面信息为准才可以快准狠地登录成功。
2.4 代码
有了上面的思路代码就很简单了
import requests
import time
# 网址
login_url 真实登录网址
home_url 个人用户页面网址
# 参数
username input(请输入账号)
password input(请输入密码)
data {action: user_login,username: username,password: password,rememberme: 1
}
# header参数
headers {User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36,
}
# 代理池
proxies {http :http://ip:端口,xxxxx
}
# 请求
session requests.session()
# 登录
session.post(login_url,headersheaders,datadata,proxiesproxies)
time.sleep(6)
# 访问个人主页
response session.get(home_url,headersheaders)
# 查看结果
print(response.status_code)
# 把个人用户界面网页拷贝下来证明登录成功
with open(home.html,w,encodingutf-8) as f:f.write(response.content.decode(utf-8)) 这里又补充一个知识点就是你可以把网页源码保存到本地以html后缀格式存储然后可以用浏览器打开这样可以直观看到爬取的结果。
此时我这里的结果如下 3. 总结
到这篇文章为止requests库就讲解完毕了这里我简单总结一下写请求代码时最需要注意的点
headers参数不能忘记现在网站最基本的都会排查headers参数写登录爬虫时一定要去通过浏览器提供的后台工具结合我上篇和这篇的知识点去抓取真实提交的POST页面找到参数和真实url
下一篇开始讲解解析库的内容。