Python123 潜水
  • 1发帖数
  • 1主题数
  • 0关注数
  • 0粉丝
开启左侧

我用Python爬取了女神视界,爬虫之路永无止境「内附源码」

[复制链接]
Python123 发表于 2021-10-17 16:10:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
我发现抖音上很多小姐姐就拍个跳舞的视频就火了,各人是冲着舞蹈水平去的吗,都是冲着颜值身材去的,能刷到这篇文章的都是lsp了,我就跟各人不一样了,一个个刷太麻烦了,我直接爬下来看个够,先随意展示两个。



                               
登录/注册后可看大图





                               
登录/注册后可看大图



采集目标



爬取目标:女神世界



                               
登录/注册后可看大图





                               
登录/注册后可看大图



结果展示




                               
登录/注册后可看大图


                               
登录/注册后可看大图




工具使用



使用环境:Python3.7 工具:pycharm 第三方库:requests, re, pyquery


爬虫思路:




  • 获取的是视频数据 (16进制字节)
  • 在这个页面没有视频地址 需要进去详情页 所有需要从 视频播放页开始抓取


使用快捷键 F12 进入开发者控制台:



                               
登录/注册后可看大图





                               
登录/注册后可看大图



先不急, 找到 视频地址 去搜刮他 看看在那里有包罗:



                               
登录/注册后可看大图





                               
登录/注册后可看大图




                               
登录/注册后可看大图





                               
登录/注册后可看大图



定位他 发现是静态页面返回的数据:



                               
登录/注册后可看大图





                               
登录/注册后可看大图



上代码:


def Tools(url):# 封装一个工具函数 用来做哀求的    headers = {        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52'    }    response = requests.get(url, headers=headers)    return responseurl = 'https://www.520mmtv.com/9614.html'response = Tools(url).textvideo_url = re.findall(r'url: "(.*?)",', response)[0] # 正则表达式提取 视频地址video_content = Tools(video_url).content# 视频地址存储 需要在代码同路径 手动创建 短视频文件夹with open('./短视频/123.mp4', 'ab') as f:    f.write(video_content)# 下载了一个


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图





                               
登录/注册后可看大图




                               
登录/注册后可看大图





                               
登录/注册后可看大图



def main():    url = 'https://www.520mmtv.com/hd/rewu.html'    response = Tools(url).text    doc = pq(response) # 创建pyquery对象 注意根据css的 class 类选择 和id选择器进行数据提取    i_list = doc('.i_list.list_n2.cxudy-list-formatvideo a').items() # .类选择器 中间有空格的 记得更换成.    meta_title = doc('.meta-title').items() # 标题    for i, t in zip(i_list, meta_title):        href = i.attr('href')        Play(t.text(), href)


                               
登录/注册后可看大图



全部代码:


import requestsimport refrom pyquery import PyQuery as pqdef Tools(url):    headers = {        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52'    }    response = requests.get(url, headers=headers)    return responsedef Play(title, url):    # url = 'https://www.520mmtv.com/9614.html'    response = Tools(url).text    video_url = re.findall(r'url: "(.*?)",', response)[0]    video_content = Tools(video_url).content    with open('./短视频/{}.mp4'.format(title), 'ab') as f:        f.write(video_content)        print('{}下载完成....'.format(title))def main():    url = 'https://www.520mmtv.com/hd/rewu.html'    response = Tools(url).text    doc = pq(response) # 创建pyquery对象 注意根据css的 class 类选择 和id选择器进行数据提取    i_list = doc('.meta-title').items() # .类选择器 中间有空格的 记得更换成.    meta_title = doc('.meta-title').items() # 标题    for i, t in zip(i_list, meta_title):        href = i.attr('href')        Play(t.text(), href)if __name__ == '__main__':    main()


                               
登录/注册后可看大图



下载比较慢网络不好,你网快的话 ,就下载快。


结果:



                               
登录/注册后可看大图

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城