栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

requests爬取某视频网址

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

requests爬取某视频网址

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
    • 一、分析搜索页,将链接列出
      • 对当前页面展示的列表进行爬取和整理,步骤如下:
      • 分析数据存在位置(html,js)
          • 获取数据, 获取网页源代码,对网页数据进行分析,因为查看源代码可以看到,数据只有120行,试问一个网页那么多标签和Css,怎么可能才120行,有两种可能(都和js有关),一种是有一个链接可以访问json,另一种是把json都加载到js的变量里了,所以就得去分析源码里的js和分析一些请求了.
          • 方法如下:
          • 找到所在位置之后分析其展示的结果,这明显是第二种:把所有json都加载到了一个js里面。这种情况就得找关键词对代码进行分割
      • 找到一个分割点对html所有代码进行分割
      • 分割后找到相应的json数据
          • 得到格式化的json数据,再对json进行分析
      • 处理json数据得到链接
          • 可以发现,这个json数据不深,非常浅,直接找到html就好,分析html的方法,就是直接去网页上F12进行查找
    • 二、对单个视频进行分析
    • 下节


前言

分析如何爬取某视频网址


一、分析搜索页,将链接列出

对当前页面展示的列表进行爬取和整理,步骤如下:
  1. 分析数据存在位置(html,js)
  2. 找到一个分割点对html所有代码进行分割
  3. 分割后找到相应的json数据
  4. 处理json数据得到链接
分析数据存在位置(html,js)
url="Ac--fun网页地址"
  headers = {
        "User-Agent": '自己的请求头'
    }
    response = requests.get(url, headers=headers)
    # print(response.text)
 
    

获取数据, 获取网页源代码,对网页数据进行分析,因为查看源代码可以看到,数据只有120行,试问一个网页那么多标签和Css,怎么可能才120行,有两种可能(都和js有关),一种是有一个链接可以访问json,另一种是把json都加载到js的变量里了,所以就得去分析源码里的js和分析一些请求了. 方法如下:

找到一些关键字,确保是惟一或者为数不多的关键词,复制下来,然后去NetWork找请求包

找到所在位置之后分析其展示的结果,这明显是第二种:把所有json都加载到了一个js里面。这种情况就得找关键词对代码进行分割 找到一个分割点对html所有代码进行分割

至于为啥找下面这段呢,因为感觉它是独一无二的,为啥从第一个截取呢,因为它前面的基本上都是没用,目标主要是找json数据

   ss = str(response.text).split("""n", '')
        if i[-2:] == ');':
            i = i[:-2]
        data_html.append(i)
    with open("js_data.json", 'w', encoding='utf-8') as f:
        st = '['
        st1 = ''
        for i in data_html:
            st1 += str(i) + ','
        st = st + st1[:-1] + ']'
        f.write(st)
     #将得到的列表进行遍历,最后拼接成 [{json},{json}]这种样式

得到格式化的json数据,再对json进行分析 处理json数据得到链接

可以发现,这个json数据不深,非常浅,直接找到html就好,分析html的方法,就是直接去网页上F12进行查找
def child_spider(param):
    '''

    :param param: html的字符串
    :return:
    '''
    soup = BeautifulSoup(param, 'html.parser')
    div = soup.findAll("div", class_="search-video-card")
    with open("href.txt", 'a+', encoding='utf-8') as f:
        for i in div:
            div_a = i.find("div", 'video__main__title ellipsis2')
            # print(div_a.text)
            a = div_a.find("a")
            href = 'https://www.acfun.cn' + a['href'] + "n"
            f.write(href)
#对得到的json数据读取,拿出html源码并进行访问,得到链接
with open("js_data.json", 'r', encoding='utf-8') as f:
     data = json.loads(f.read())
for o in data:
     child_spider(o['html'])
二、对单个视频进行分析 下节
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号