Python爬取六间房小姐姐自拍小视频!真漂亮啊!

154 阅读2分钟

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

python开发环境

  • python 3.6

  • pycharm

    import requests

    pip install requests

    12

目标网页分析

![](https://p6-tt-ipv6.byteimg.com/origin/pgc-image/494b89b87d9e4ec08802cf9830ce02c8)

全部都是漂亮的小姐姐,爱了,爱了~

![](https://p1.pstatp.com/origin/pgc-image/e4f4be323ceb470182335f18592d9f7b)

想把这些小姐姐的自拍视频全部打包带回家~

网站是动态数据加载的,再开发者工具里面可以找到相关的数据包

![](https://p26-tt.byteimg.com/origin/pgc-image/65aee7c3387d40c5a2c9062c977f883d)

有昵称、标题、封面以及视频地址,复制视频地址会自动下载,所以只需要模拟请求这个也就可以获取相对应的数据了

import requests
import pprint
url = 'https://v.6.cn/minivideo/getMiniVideoList.php?act=recommend&page=1&pagesize=30'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
response = requests.get(url=url, headers=headers)
html_data = response.json()
pprint.pprint(html_data) 
1234567
![](https://p26-tt.byteimg.com/origin/pgc-image/c8da08674f0549058d9b230ccd282b95)

返回的是json数据,所以我们可以根据字典取值的方法获取视频地址~

pprint 格式化输入模块,这样的会让返回的数据看的清楚。

解析数据,获取视频地址以及标题

lis = html_data['content']['list']  
for li in lis:                      
    title = li['title']             
    play_url = li['playurl']        
    print(title, play_url)          
12345
![](https://p6-tt-ipv6.byteimg.com/origin/pgc-image/8b582a8185874ac8a7781991776eb06c)

获取视频地址之后,可以请求视频地址,进行保存

    response_2 = requests.get(url=play_url)                                       
    path = 'D:\\python\\demo\\六间房视频\\视频\\' + title + '.mp4'                       
    with open(path, mode='wb') as f:                                              
        f.write(response_2.content)                                               
        print(title)                                                              
12345
![](https://p9-tt-ipv6.byteimg.com/origin/pgc-image/58e473ae1cd943b6aa71eb65afe20600)

保存下来的视频是可以播放的,但是这个只是一页的数据,对于这丢丢视频,小编是肯定不满足的~

那怎么实现翻页爬取呢,这就要分析数据接口的url变化了

六间房这个网站的数据加载是瀑流的数据加载方式,和平常我们看到的那点击下一页就跳转的不一样,它是需要你往下滑,然后就会给你出现数据

![](https://p26-tt.byteimg.com/origin/pgc-image/16bff3e443c74fe6a1f4766dbadd9090)

可以清楚的看到page的变化是对应的是页码

所以我们只需要在url前面给他循环遍历一下就可以了,达到翻页的效果了

完整代码

import requests
import pprint
for page in range(1, 11):
    url = 'https://v.6.cn/minivideo/getMiniVideoList.php?act=recommend&page={}&pagesize=30'.format(page)
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
    response = requests.get(url=url, headers=headers)
    html_data = response.json()

    lis = html_data['content']['list']
    for li in lis:
        title = li['title']
        play_url = li['playurl']
        response_2 = requests.get(url=play_url)
        path = 'D:\\python\\demo\\六间房视频\\视频\\' + title + '.mp4'
        with open(path, mode='wb') as f:
            f.write(response_2.content)                         
            print(title)
![](https://p1-tt-ipv6.byteimg.com/origin/pgc-image/bf253c8fdd3c4544bfbbe5b465fcecbd)