python爬虫5:requests库-案例3

这篇具有很好参考价值的文章主要介绍了python爬虫5:requests库-案例3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python爬虫5:requests库-案例3

前言

​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。

申明

​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好影响。

目录结构

1. 目标

​ 本次案例的主要目标是帮助大家熟悉requests库中的会话维持技巧、代理构建等技巧。

再次说明,案例本身并不重要,重要的是如何去使用和分析,另外为了避免侵权之类的问题,我不会放涉及到网站的图片,希望能理解

2. 详细流程

2.1 代理池的构建

​ 代理池的作用之前已经讲过了,但是如何构建代理池呢?一般来说都是将那些可以使用的代理IP放入数据库中,后面写爬虫程序的时候再调用,因为代理池是可以一直使用的工具。

​ 我之前写过一个脚本,就是利用一个爬虫专门去爬免费代理网站的代理IP,然后再写个爬虫去爬取目标网站。不过这里,我们就简单来,把一些可用的代理IP放入一个字典中即可

2.2 目标确定

​ 这次我换了一个小网站,具体地址我就不放了。

​ 首先,利用上一篇的知识,虚假登录获取data参数值,结果如下:

python爬虫5:requests库-案例3,python爬虫系列,python,爬虫,开发语言

​ 可以发现的是,参数构建如下:

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,headers=headers,data=data,proxies=proxies)
time.sleep(6)
# 访问个人主页
response = session.get(home_url,headers=headers)
# 查看结果
print(response.status_code)
# 把个人用户界面网页拷贝下来证明登录成功
with open('home.html','w',encoding='utf-8') as f:
    f.write(response.content.decode('utf-8'))

​ 这里又补充一个知识点,就是你可以把网页源码保存到本地,以html后缀格式存储,然后可以用浏览器打开,这样可以直观看到爬取的结果

​ 此时,我这里的结果如下:

python爬虫5:requests库-案例3,python爬虫系列,python,爬虫,开发语言

3. 总结

​ 到这篇文章为止,requests库就讲解完毕了,这里我简单总结一下写请求代码时最需要注意的点:

  • headers参数不能忘记,现在网站最基本的都会排查headers参数
  • 写登录爬虫时,一定要去通过浏览器提供的后台工具,结合我上篇和这篇的知识点,去抓取真实提交的POST页面,找到参数和真实url

​ 下一篇,开始讲解解析库的内容。文章来源地址https://www.toymoban.com/news/detail-646871.html

到了这里,关于python爬虫5:requests库-案例3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【100天精通python】Day42:python网络爬虫开发_HTTP请求库requests 常用语法与实战

    目录 1 HTTP协议 2  HTTP与HTTPS 3 HTTP请求过程  3.1 HTTP请求过程 3.2 GET请求与POST请求

    2024年02月12日
    浏览(62)
  • 【Python程序开发系列】聊一聊github的pull request几种合并方式

          在正常的工作流程中,PR 用于将一个分支的更改合并到另一个分支,而这些更改通常以提交的形式存在。每个提交都有一个唯一的提交 ID,用于标识和跟踪更改的历史。因此一般情况下PR包含源分支的多个commit提交记录(pr_commit_ids),也有可能不包含任何commit。    

    2024年02月20日
    浏览(37)
  • 可狱可囚的爬虫系列课程 11:Requests中的SSL

    我们在可狱可囚的爬虫系列课程 09:通过 API 接口抓取数据文章中遗留了一个问题,就是为什么要添加 verify=True 这个参数,今天我给大家单独解释一下,这还要从网站的 SSL 证书说起。 SSL 证书是数字证书的一种,类似于驾驶证、护照、营业执照等的电子副本。SSL 证书也称为

    2024年02月01日
    浏览(36)
  • python-网络爬虫.Request

    Request python中requests库使用方法详解: 一简介:         Requests 是Python语言编写,基于urllib,         采用Apache2 Licensed开源协议的 HTTP 库。         与urllib相比,Requests更加方便,处理URL资源特别流畅。         可以节约我们大量的工作,建议爬虫使用Requests库

    2024年02月14日
    浏览(54)
  • python爬虫—requests

    类型 : models.Response r.text : 获取网站源码 r.encoding :访问或定制编码方式 r.url :获取请求的 url r.content :响应的字节类型 r.status_code :响应的状态码 r.headers :响应的头信息 找登录接口  找参数的值 python代码 登录超级鹰官网:超级鹰验证码识别-专业的验证码云端识别服务

    2024年02月10日
    浏览(41)
  • 【Python爬虫】requests库

    1.requests库的介绍 ​ requests 是 Python 语言编写,基于 urllib3 ,采用 Apache2 Licensed 开源协议的HTTP库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。是 Python 实现的简单易用的 HTTP 库。 Requests 中文文档:http://docs.pythonrequests.org/zh_CN/latest/index.html ​ 解决

    2024年02月16日
    浏览(41)
  • 【python爬虫】设计自己的爬虫 1. request封装

    通过requests.session().request 封装request方法 考虑到请求HTTP/2.0 同时封装httpx 来处理HTTP/2.0的请求 通过is_http2来区分 测试代码如下

    2024年02月08日
    浏览(56)
  • Python爬虫之requests模块

    requests文档http://docs.python-requests.org/zh_CN/latest/index.html 1、requests模块的作用: 发送http请求,获取响应数据 2、requests模块是一个第三方模块,需要在你的python(虚拟)环境中额外安装 pip/pip3 install requests 3、requests模块发送get请求 需求:通过requests向百度首页发送请求,获取该页面

    2024年02月09日
    浏览(44)
  • python爬虫——request模块讲解,Python详解

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST, 浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 (二)http常见请求参数 url:请求url地址 headers:请求头 **data:发送编码为表

    2024年04月26日
    浏览(36)
  • python爬虫_requests入门指引

    大家好,我是yma16,本文分享关于python的requests库用法。 该系列文章: python爬虫_基本数据类型 python爬虫_函数的使用 requests可以用来发送http请求。 对比浏览器发送的请求 requests是在python的运行环境发送请求,不存在限制跨域,无ui界面,优势在于自动化 浏览器发送请求被浏

    2024年02月11日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包