谷歌抓取网页视频教程(本次要用到的模块大概思路(免费领取)(组图))

优采云 发布时间: 2022-02-07 11:05

  谷歌抓取网页视频教程(本次要用到的模块大概思路(免费领取)(组图))

  概述

  我想很多人第一次接触爬虫,学习的目的就是为了捕捉某些*敏*感*词*姐们的视频、图片或者小说!这应该是大家想学爬虫的动力!今天给大家上一期《攀登*敏*感*词*姐》的完整视频。本来是很严肃的视频,但是想了想还是要实事求是。那我得换成*敏*感*词*姐,整一下!

  ​

  

  使用的环境是 Python3.6 和 pycharm。需要安装浏览器驱动(谷歌或者火狐都可以,只要和浏览器版本差不多)。没有的可以加这个群。我会加群免费领取,包括群里免费提供完整的代码和视频教程。

  

  很多小伙伴在学习的过程中,因为没有好的学习资料、学习路线,或者不能及时解决问题,导致学习进度放慢,甚至放弃学习。这里我为你准备了一切,从零基础到实战,全方位的学习路线免费给你,所有学习问题都可以在群里解答,点我免费领取

  的

  

  欢迎大家!

  这次要使用的模块

  requests >>> pip install requests

selenium >>> pip install selenium

re 

os

  大概的概念

  一. 数据源分析

  确定需求(我们要抓取什么?)

  抖音视频内容

  通过开发者工具进行数据包捕获分析

  一、(F12/右键勾选打开)选择网络,选择媒体,找到播放地址

  二、查找播放地址的来源>>>

  爬视频

  二. 代码实现流程

  发送请求 发送请求视频详情页

  获取数据 获取网页源代码数据

  解析数据提取视频播放地址和视频标题

  下载保存

  各模块的作用

  import requests # 数据请求 第三方模块 pip install requests

import re # 正则表达式模块

import os # 文件操作模块

import time # 时间模块

from selenium import webdriver # pip install selenium

  

  自动判断是否有文件夹,自动创建,文件夹名可以任意命名。这里我们创建一个名为video的文件夹,你也可以创建一个同名的文件夹,放在代码旁边。

  filename = 'video\\' # 文件名字

if not os.path.exists(filename): # 判断如果没有这个文件夹的话

os.mkdir(filename) # 创建这个文件

  许多文件在下载后的名称中都有特殊符号。这时候我们需要替换掉这些特殊符号,否则无法保存。

  def change_title(title):

pattern = re.compile(r"[\/\\\:\*\?\"\\|\n]") # '/ \ : * ? " < > |'

new_title = re.sub(pattern, "_", title) # 替换为下划线

return new_title

  在此步骤中,需要安装浏览器驱动程序。Selenium 可以模拟人类行为来操作浏览器,模拟滑动操作。如果自己翻过来,有多麻烦?验证码没有写进去,需要自己手动传验证码。

  def drop_down():

"""执行页面滚动的操作""" # javascript

for x in range(1, 30, 4): # 在你不断的下拉过程中, 页面高度也会变的

time.sleep(1)

j = x / 9

# document.documentElement.scrollTop 指定滚动条的位置

# document.documentElement.scrollHeight 获取浏览器页面的最大高度

js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j

driver.execute_script(js)

  实例化浏览器对象

  driver = webdriver.Chrome()

  访问 url 地址 URL

  driver.get('.......')

  把括号里的内容换成你要爬的博主,链接我就不放了,免得审核不通过。

  让我们截图。这里以他为例。任何知道它的人都会明白。

  ​

  

  

  的

  ​

  

  ​

  

  不,我不明白~

  怎么找到地址,放到当前页面的链接里?把前面的都复制过来,放在括号里替换……这些点。

  

  返回列表中的元素是对象

  lis = driver.find_elements_by_css_selector('div._927ae3b0dd790b5b62eae61c7d2fa0bc-scss > div:nth-child(2) > ul li')

  调用 find_element_by_css_selector() 方法

  li_url = li.find_element_by_css_selector('a').get_attribute('href')

  headers 请求头伪装,user-agent:浏览器的基本信息。

  headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'

}

response = requests.get(url=li_url, headers=headers)

  获取数据 response.text 获取响应正文的文本数据

  打印(响应。文本)

  通过正则表达式解析数据

  正则表达式匹配的内容是一个列表

  贪婪模式 [我想要这一切] 非贪婪模式 (?)

  title = re.findall(' (.*?)', response.text, re.S)[0]

new_title = change_title(title)

  返回是一个列表,没问题。[1]的索引取第一个元素的索引位置为0,第二个元素的索引位置为1。

  html_data = re.findall('src(.*?)vr%3D%2', response.text)[1]

  解码

  video_url = requests.utils.unquote(html_data).replace('":"', 'http:')

  print(video_url) 保存数据,response.content(获取响应体的二进制数据),为什么需要获取二进制数据,如果我想以特定格式保存图片/视频/音频/文件,他们都保存为二进制数据。,

  video_content = requests.get(url=video_url, headers=headers).content

  mode 保存模式,w 为写入,b 二进制模式,wb 以二进制模式保存,模式默认为,r 读取,如重命名 f。

  然后看看效果

  ​

  

  ​

  

  的

  

  

  的

  ​

  

  

  的

  兄弟们,快冲冲冲!还是新的,只要你去尝试,一定是成功的。如果你还没试过,那我就不说了。文章不明白的可以进群看视频!工具软件有现成的直接管理找吧!

  ​

  

  ​

  

  ​

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线