最近看到很多博主下载资源,其中有人就问:我们是搞程序出生的,能不能写段代码来实现微博下载视频资源呢?

当然,可以了,下面我使用python,来做一下演示。

1.借助JavaScript将页面滚动到最底部

def scroll(driver):driver.execute_script("""(function () {var y = document.body.scrollTop;var step = 100;window.scroll(0, y);function f() {if (y < document.body.scrollHeight) {y += step;window.scroll(0, y);setTimeout(f, 50);}else {window.scroll(0, y);document.title += "scroll-done";}}setTimeout(f, 1000);})();""")

2.登录代码

from selenium import webdriver
import time
driver = webdriver.PhantomJS(executable_path=r'D:\phantomjs\bin\phantomjs.exe')
driver.set_window_size(1124, 850)#如果不设置窗口大小,send_keys()会报错
driver.get('https://weibo.com/login.php')
driver.find_element_by_id('loginname').send_keys('*********@qq.com')#输入用户名
driver.find_element_by_name('password').send_keys('********')#输入密码
driver.find_element_by_css_selector('.W_btn_a.btn_32px').click()

3.等待浏览器加载JavaScript,如果出现了“加载更多微博”则单击该链接

driver.get('http://www.weibo.com/u/2479183364/home?wvr=5&c=spr_sinamkt_buy_hyww_weibo_t112')#模拟登录成功之后需要手动转到用户主页,否则用户主页中的js不会加载
for i in range(100):scroll(driver)time.sleep(2) #等待浏览器加载JavaScriptprint(i)try: #如果出现了“加载更多微博”则单击该链接check = driver.find_element_by_css_selector('.more_txt.W_f14')check.click()except:pass
html = driver.page_source
with open('sourcepage.html','wb') as f:f.write(html.encode('utf-8'))

4.分析网页代码并下载视频,具体代码如下:

f = open('sourcepage.html','r',encoding='utf-8')
def Schedule(a,b,c):'''''a:已经下载的数据块b:数据块的大小c:远程文件的大小'''per = 100.0 * a * b / cif per > 100 :per = 100print('%.2f%%' % per,'已完成:',a*b,'文件大小:',c)
import re
import urllib.request

5.视频地址保存在如下字符串中:video_src=%2F%2Ff.us.sinaimg.cn%2F003VadS9lx07dFILBptK010f010027cR0k01.mp4

src_list = re.findall(r'video_src=(.+?\.mp4)',f.read())#提取地址
for i in range(len(src_list)):src_list[i] = re.sub(r'%2F','/',src_list[i])try:#部分视频无法访问,会抛出403错误urllib.request.urlretrieve('http:'+src_list[i],"D:/Book/大型实例/Weibo"+re.sub(r'/','',src_list[i]),Schedule)except Exception as e:print(e)

OK,先写到这了,下次再写了!呵呵~

Python之模拟登录微博下载视频相关推荐

  1. 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据

    python实现模拟登录+爬取Nasa Modis 上的产品数据 概述 需求分析 基本思路 代码 概述 3月的中旬时候参与了学校的一个大创项目,作为本科生,本人只是摸鱼打杂,负责了其中的一个功能模块: ...

  2. 用 Python 实现模拟登录正方教务系统抢课

    (点击上方蓝字,快速关注我们) 作者:小苏打 https://vhyz.me/2018/06/12/用Python实现模拟登录正方教务系统抢课/ 最近学校开始选课,但是如果选课时间与自己的事情冲突,这 ...

  3. python访问陌生人qq空间_使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间 爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleni ...

  4. 【Python技能树共建】Python爬虫模拟登录

    Python 爬虫模拟登录 Python 爬虫模拟登录是使用脚本实现自动登录,部分站点需要逆向加密逻辑,更多的站点会采用验证码进行鉴权验证. 本文为大家带来最简单的登录,其核心用到的是 request ...

  5. python爬虫 模拟登录人人网过程解析

    这篇文章主要介绍了python爬虫 模拟登录人人网过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 equests 提供了一个叫做sessio ...

  6. Python selenium 模拟登录bilibili

    Python selenium 模拟登录bilibili ​ Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样. ​ 在登录bil ...

  7. python登录教务系统_强智科技教务系统python爬虫模拟登录分析(湖南)

    强智科技教务系统python爬虫模拟登录分析(湖南) 本文章仅用作于学习 前提:最近期末到来,想第一时间看到新出成绩的,于是就有了爬取学校教务系统自己的成绩并通过Qmsg酱推送到自己QQ上的想法,目前 ...

  8. 模拟登录微博通,抓取新浪微博c#

    在前天我到公司就接到一个惊人的消息,说是新浪1.0的搜索接口关闭了,那我们的业务岂不是受很大影响,这个事太紧急了,大家在一起商讨该怎么办,跟新浪买2.0的接口肯定时间很长,最后决定抓取新浪网页的,新浪 ...

  9. python–爬虫–模拟登录全面介绍和简例–以抓取雅卓app为例

    转载请注明出处:python–爬虫–模拟登录全面介绍和简例–以抓取雅卓app为例 我们在前面的文章中已经学习了如果使用python进行数据抓取. 但我们常常会遇到一种场景,就是想要获取的页面内容或者接 ...

最新文章

  1. javascript简单应用
  2. php内加百度熊掌号,百度熊掌号接入网站页面改造详细步骤
  3. javascript中关于作用域和闭包
  4. 高中考试计算机课程,高中计算机课程的工作总结
  5. Hibernate依赖包简单介绍
  6. ASP.NET 3.5中的一个超简单的Ajax实验
  7. python中time库引用不正确的_python模块知识一 自定义模块、time、datetime时间模块...
  8. (转)FPGA的速度等级(speed grade)
  9. CCIE-LAB-第十二篇-EIGRP+EIGRP末节区域+leak map+分发列表
  10. AndroidMainfest.xml具体解释——lt;activitygt;
  11. 第四季-专题9-Linux驱动开发前奏
  12. Python风格总结:十进制转二进制、八进制、十六进制
  13. hibernate延迟加载,LazyInitializationException session失效问题。多数据源配置
  14. 机器学习笔记(十八):模型正则化
  15. 2.SQL之条件查询
  16. CCNet:Criss-Cross Attention for semantic Segmentation
  17. CSS盒子模型——标准模型和IE模型的区别,如何设置标准模型、IE模型
  18. 关于offer、三方协议、福利等就业常识
  19. 常用的用户认证方式详解JWT
  20. Kotlin-Android世界的一股清流-函数

热门文章

  1. java文件压缩与解压_Java实现文件压缩与解压
  2. memcacheredis构建缓存服务器
  3. 证券公司信息化1-证券行业的本质是什么?什么是资本市场?什么又是一级市场和二级市场?
  4. 电脑怎么远程控制另一台电脑
  5. 如东人院附近一网吧转让
  6. 十四、策略模式——你要黄焖鸡、手撕鸡、大盘鸡、叫花鸡都可以,指定一个吧
  7. 如何查看磁盘空间是否够用
  8. VSCode常用插件汇总
  9. 转置卷积和膨胀卷积详细讲解
  10. php如何做直播api,网易云视频直播php版api