python爬虫 从动态加载网页抓取数据

如何从动态加载网页抓取数据

1、获取请求对象
  1. 网页打开网址:如 https://vc.bilibili.com/p/eden/rank#/?tab=%E5%85%A8%E9%83%A8
  2. 那么如何从这个网页上加载数据呢,点击F12查看
    在这里会看到请求的网址
    请求参数
2、请求数据
  1. 我们看到请求数据是按照page_size来获取的,这样我们就可以模拟Request请求,获取数据
  2. 下面请看代码
import requests

# 1.分析网站真是请求地址---抓包分析
def get_json(url):
    # 伪装  程序伪装成浏览器
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'}
    params = {
        'page_size' : 10,
        'next_offset': str(num), # 不断变化
        'tag': '今日热门',
        'platform': 'pc'
    }
    # url = 'https://api.vc.bilibili.com/board/v1/ranking/top?' # 找到真实请求地址
    html = requests.get(url,params=params, headers=headers)
    # print(html)
    return html.json()

# 抓取大量数据 大量地址
# 1 11 21 31 41 :递增10 一个真实请求地址:包含10个视频
if __name__ == '__main__': # 可写可不写
    for i in range(10):
        url = 'https://api.vc.bilibili.com/board/v1/ranking/top?'
        num = i * 10 + 1   # num == offset
        html = get_json(url)
# 2.解析数据
        infos = html['data']['items']
        # print(infos)#list 列表[]  ()tuple元祖   {}dict字典
        for info in infos:
            title = info['item']['description']
            vedio_url = info['item']['video_playurl']
            print(title, vedio_url)

运行结果如下:
抓取的将是每一个视频地址,点击可打开下载或者观看
在这里插入图片描述
以上就上简单实现动态网页抓取数据的全部过程

欢迎交流学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wpfgaoerfu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值