python数据获取及预处理_Python小练习——电影数据集TMDB预处理-程序员宅基地

技术标签: python数据获取及预处理  

前言

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

作者: IvanFX 复兴计算机社团

转载地址

https://blog.csdn.net/fei347795790/article/details/103820248

基本步骤与准备工作

795ba63eb1f7433bb9530fe29eec99d3

调试环境:

pycharm+python3

需要库:

urllib.

request

re

(http.cookiejar 后续爬虫进场会使用到的库,本项目反爬不涉及所以可以不添加)

如果import过程显示没有上述库,可以通过文件→设置→projet interpreter中右侧点击+来添加(如果您使用anaconda或者python也可以直接运行本项目,通过cmd→pip install添加)

2.在本文中我们通过python对于在线的短视频进行爬取,下载存储。基本步骤如下(可以写注释梳理思路):

(1)分析页面URL和视频文件URL特征

(2)获取网页源代码HTML,解决反爬机制

(3)批量下载视频存储

分析页面URL与文件URL特征

eecd34387add4912a795bf08daedcd06

1.分析网页URL

通过网页网址:http://www.budejie.com/video/1,我们可以发现针对不同页码变化的知识网址最后一个数值,而这个数值代表了页数,所以只需要改变为固定网址+变量的形式批量获取该站的网址URL

2.分析文件名URL

通过对于网页当中的mp4的文件名进行分析,发现文件的URL是明文显示的,所以通过re的正则可以匹配获取。

批量获取URL,并从中提取视频的URL

import urllib.request import re for page in range (1,20):

req = urllib.request.Request("http://www.budejie.com/video/%s" % page)

html = urllib.request.urlopen(req).read()

html = html.decode('UTF-8') print(html) 1234567

1.批量爬取网页URL

这里我们page变量代表页面的编码,从这里我们暂时先爬取前20页。

(1)req获取网页反馈

(2)html通过函数获取网页的源代码

(3)通过对于源代码UTF-8编码恢复中文的显示。

但是通过上述代码的执行发现错误显示http Error 403,因为网页的反爬机制不能获取。

61d1aea4c74c4a56bebbc62845ed88fe

2.通过页面增加头文件

我们通过谷歌浏览器访问页面,按F12并切换到Network,刷新界面观察访问进程,可以从进程文件中选取一个查看头文件,添加到代码中,(这里选取的baisibudejie.js)修改代码如下,可以正常爬取界面。

for page in range (1,20):

req = urllib.request.Request("http://www.budejie.com/video/%s" % page)

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")

html = urllib.request.urlopen(req).read()

html = html.decode('UTF-8') print(html)

123456

批量下载视频,并建立文件名存储

160843bb12f14a3fba8a1fd8c0fc23e5

e5e39393d77145288ee9f71cebf72087

1.建立循环结构批量命名

建立循环结构之后,需要保留文件名下载,i.split("/")[-1]的含义是将i进行分割,以‘/’为分割符,保留最后一段,即MP4文件名。

2.批量下载

还是需要加一句显示的输出语句,来表示进程,也符合一个程序的交互性,也就是下载到那个视频的时候显示一下进度,最后下载到一个mp4的文件夹内

for i in re.findall(reg, html):

filename = i.split("/")[-1] # 以‘/ ’为分割f符,保留最后一段,即MP4的文件名 print('正在下载%s视频' % filename)

urllib.request.urlretrieve(i, "mp4/%s" % filename) 1234

1.建立完整程序

作为一名合格的程序员,需要梳理程序,添加注释,便于理解和后续的修改

import urllib.request import re def getVideo(page): req = urllib.request.Request("http://www.budejie.com/video/%s" %page)

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")

html = urllib.request.urlopen(req).read()

html = html.decode('UTF-8')

reg = r'data-mp4="(.*?)"' for i in re.findall(reg,html):

filename = i.split("/")[-1]#以‘/ ’为分割f符,保留最后一段,即MP4的文件名 print ('正在下载%s视频' %filename)

urllib.request.urlretrieve(i,"mp4/%s"%filename) for i in range (1,20):

getVideo(i)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39553458/article/details/110067079

智能推荐

阿里云短信sdk的懒人用法_defaultacsclient修改endpoint-程序员宅基地

文章浏览阅读1.3k次,点赞7次,收藏18次。1.因为是懒人写法,所以我们直接用带有demo的sdk图示链接:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.6.698.13d911273aOxl02、下载后的目录结构是3、因为是懒人写法所以我们的修改就简单了下面进行讲解进入正题找到对应的参数accessKeyId、accessKeySecret 、签名、模板id、模板内的变量修改demo里面的参数和内容,封装成一个方法或者类,如下:_defaultacsclient修改endpoint

解决Oracle ORA-00911错误的一个方法_oracle 创建用户 ora 00911-程序员宅基地

文章浏览阅读4k次。运行时发现执行PreparedStatement ps = conn.prepareStatement("select 1 from dual;");时报错:java.sql.SQLException: ORA-00911: 无效字符哦,此时我知道是什么原因了。马上把PreparedStatement ps = conn.prepareStatement("select 1 from du_oracle 创建用户 ora 00911

OptionsMenu和ContextMenu的使用(一)_optionsmenu 、contextmenu的使用方法-程序员宅基地

文章浏览阅读1k次。一、OptionsContextMenu的使用1.1 创建OptionsContextMenu方式一: 请参考AndroidStudio模板工程(七)的关于菜单Menu的使用提示方式二: //重写Activity的onCreateOptionsMenu方法 @Override public boolean onCreateOptionsMenu(Menu..._optionsmenu 、contextmenu的使用方法

《错误记录——SQL上传时错误。错误描述pymysql.err.OperationalError: (1241, ‘Operand should contain 1 column(s)‘)_pymysql.err.operationalerror: (1241, 'operand shou-程序员宅基地

文章浏览阅读2.7k次,点赞4次,收藏2次。本次错误2021年12月24日出现,出现在爬虫上传本地数据库中。错误同样无大问题。问题,描述:Traceback (most recent call last): File "E:\python\lib\site-packages\pymysql\connections.py", line 1156, in read first_packet = self.connection._read_packet() File "E:\python\lib\site-packages\pymysq_pymysql.err.operationalerror: (1241, 'operand should contain 1 column(s)')

arcmap给tif添加地理坐标_如何使用arcgis将tiff图片的坐标系转换-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏20次。先查看你本来的坐标系参数,主要看参考椭球,参考椭球面等信息例如你需要转换的坐标系GCS_WGS_1980、GCS_Xian_1980:(1)GCS_WGS_1980坐标系:Datum: D_WGS_1984Spheroid: WGS_1984Semimajor Axis: 6378137.0Semiminor Axis: 6356752.31424517(2)GCS_Xian_1980坐标系:Da..._d_wgs_1984

html实现点击图片放大功能_html点击放大图片-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏30次。<html> <head> <style> .over {position: fixed; left:0; top:0; width:100%; z-index:100;} .tempContainer {position:fixed; width:100%; margin-right:0p..._html点击放大图片

随便推点

django 最佳实践_5本适合初学者的最佳Django书-程序员宅基地

文章浏览阅读6.7k次,点赞2次,收藏8次。django 最佳实践Here you will find list of best django books for beginners to learn. 在这里,您将找到最佳django书籍清单,供初学者学习。 If you’re eager to learn Django as it is so popular nowadays for its simplicity, then you..._django书籍

FL Studio 21 for Mac中文破解版百度网盘免费下载安装激活_fl studio 21 osx-程序员宅基地

文章浏览阅读712次,点赞14次,收藏3次。是Mac系统中的一款水果音乐编辑软件,提供多种插件,包括采样器、合成器和效果器,可编辑不同风格的音乐作品,Pattern/Song双模式,可兼容第三方插件和音效包,为您的创意插上翅膀。FL Studio 21 Mac破解版入门低,想学习音乐编曲的朋友可以选择这款软件。FL Studio 21 for Mac中文破解版完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室,因为它包含了一个主要的听觉工作场所。_fl studio 21 osx

Hibernate源码分析_hibernate 源码类关系-程序员宅基地

文章浏览阅读7.5k次。这段时间本人利用空闲时间解读了一下Hibernate3的源码,饶有收获,愿与大家共享。 废话不多说,首先我们先对Hibernate有一个大致的印象l 设计模式Hibernate=监听器,实际上是回调l Hibernate3支持拦截器 Hibernate配置方面的大原则:l bhn.xml文件所有配置都是描述本实体,除了cascade描述级联,即如何将本实体的操作(_hibernate 源码类关系

react native 如何上传文件/图片到 strapi数据库_react-native 上传-程序员宅基地

文章浏览阅读1.4k次,点赞40次,收藏20次。折腾了一段时间,发现在strapi上传文件是出名的困难,而且官方文档上传文件教程也没有针对react native的部分,仅仅通过它的nodejs和browser代码在rn中套用行不通,其中还有些细节的纰漏。开始前请确保自己已经按照官方教程安装好strapi提示:以下是本篇文章正文内容,下面案例可供参考。_react-native 上传

DDos防护系列之2--DDos防御策略_ds防护策略-程序员宅基地

文章浏览阅读3k次。前一篇文章讲述了什么是DDos,DDos的种类等。这一节我们讲述DDos的防御策略。我们按照DDos的攻击类型来讲解每一种类型对应的防御策略。一、DDos攻击类型有以下一些类型,但不限于:畸形报文、传输层(4层)DDoS攻击、Web应用DDoS攻击、DNS DDoS攻击、连接型DDoS攻击。1. 畸形报文每中报文都有相对应的标准格式,如果不符合这种格式就属于畸形报文,我们可_ds防护策略

EasyClick 易点云测自动化测试入门到精通_冉遗鱼图色插件-程序员宅基地

文章浏览阅读2.2k次。EasyClick 易点云测自动化测试入门到精通_冉遗鱼图色插件

推荐文章

热门文章

相关标签