requests+bs4使用(post方式)

requests+bs4使用(post方式)

一、介绍

现在很多网站都会用到前后端分离的开发策略,前端只是负责渲染,数据通过其他路由去获取,比如https://gary666.com/pub,如果你直接用get方式请求这个网页的话是获取不到主要内容的(比如这个例子中表格中的数据),因为没有执行他请求数据的js,提示可以通过chrom浏览器network观察他真实请求数据的url,这里用了一种异步的技术。
真实请求数据的url为:https://www.gary666.com/result,这样对于我们爬虫也有一个好处就是我们不用再去解析网页内容,只要找到请求数据的接口(一般结合返回的数据格式都是json的,很规范),就很容易获取到自己想要的内容。
在这里插入图片描述爬取这个网页的课程信息(主要是requests的post方法,bs4没用到)
其中传递的参数有page(表示页码),rows(表示每页的条数)

在这里插入图片描述

  • 输出:所有的课程名、学分、教师名、授课院系、领域、时间地点、备注
  • 基本要求:所有页数据、封装函数、数据存储

二、参考代码

# -*- coding: utf-8 -*-
# author:Gary
import requests

url = 'https://www.gary666.com/result'  # 需要post的url
for page in range(1, 33):  # 多少页:32页
    data = {
        'page': page,
        'rows': 10
    }  # 需要post的数据
    res = requests.post(url, data).json()  # 获取post的返回数据,也可以采用.text方法获取网页内容
    print(res)  # 查看返回内容
    items = res['rows']  # 提取主要内容
    for item in items:  # 获取对应的信息
        print(item['Cname'], item['grade'], item['Tname'], item['department'], item['type'], item['timeLocation'],
              item['tips'])

三、运行结果

在这里插入图片描述

参考文献:

  1. 关于json格式的介绍:https://blog.csdn.net/woay2008/article/details/94366000
  2. 使用chrom浏览器Network查看前后台数据传输请求:https://blog.csdn.net/museions/article/details/75144263
  3. 不同浏览器前端调试查看返回页面的json数据:https://blog.csdn.net/bcbobo21cn/article/details/88564944
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值