python爬虫基础应用----爬取校花网视频
一.爬虫简单介绍
爬虫是什么?
爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序.
爬虫程序包括哪些模块?
python中的爬虫程序主要包括,requests请求库,seleium请求库,xpath和BeautSoup4解析库,
爬取校花网需要使用到哪些模块?
校花网结构简单,而且没有任何防爬手段,所在只需要使用requests就可以完成了=.=.
二.具体操作
1.获得网页
网站地址:http://www.xiaohuar.com/
我要爬取的视频网页主页为http://www.xiaohuar.com/list-3-0.html
下一页为http://www.xiaohuar.com/list-3-1.html
总共有五页所以,拼接生成五页主页.
url = 'http://www.xiaohuar.com/list-3-{}.html'
for line in range():
index_url = url.format(line)
2.主页解析
主页中跳转到详情页的连接在这里

#使用正则可以获得详情页网址.
re.findall('<div class="items".*?<a href="(.*?)"',index_res,re.S)
3.详情页解析
详情页中的视频连接在这个位置 
#正则匹配获得视频的网址
video_url = re.findall('<source src="(.*?)">',detail_page,re.S) # 顺便获得视频的名字
video_name = re.findall('<h1>(.*?)</h1>',detail_page,re.S)
4.保存视频
将上获得的网址与视频名传入函数,打开网址将内容保存到video中 "视频名字".mp4的文件中,
def save_video(video_dic):
try:
video_url=video_dic.get('url')
video_name=video_dic.get('name')
video = requests.get(video_url)
with open(r'video/%s.mp4'%video_name,'wb') as f:
f.write(video.content)
f.flush()
except Exception:
pass
5.全部执行代码
import requests
import re
import uuid #一.获取网页 url='http://www.xiaohuar.com/' def get_page(url):
index_res = requests.get(url)
return index_res.text #二.解析网站
# 解析主页
def parse_index(index_res):
detail_url_list = re.findall('<div class="items".*?<a href="(.*?)"',index_res,re.S)
return detail_url_list #解析详情页
def parse_detail(detail_page):
video_url = re.findall('<source src="(.*?)">',detail_page,re.S)
video_name = re.findall('<h1>(.*?)</h1>',detail_page,re.S)
print(video_url)
print(video_name)
if video_url:
video_url=video_url[0]
if video_name:
video_name=video_name[0]
return {'url': video_url, 'name': video_name}
else:
video_name=uuid.uuid4()
return {'url':video_url,'name':video_name} #三.保存视频
def save_video(video_dic):
try:
video_url=video_dic.get('url')
video_name=video_dic.get('name')
video = requests.get(video_url)
with open(r'video/%s.mp4'%video_name,'wb') as f:
f.write(video.content)
f.flush()
except Exception:
pass if __name__=='__main__':
url = 'http://www.xiaohuar.com/list-3-{}.html'
for line in range(5):
index_url = url.format(line)
print(index_url)
# 获得主页文本
index_res = get_page(index_url)
# 解析主页,获得详情页网址列表
detail_url_list = parse_index(index_res)
print(detail_url_list)
for detail_url in detail_url_list:
detail_page = get_page(detail_url)
video_dic=parse_detail(detail_page)
save_video(video_dic)
python爬虫基础应用----爬取校花网视频的更多相关文章
- Python爬虫训练:爬取酷燃网视频数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 项目目标 爬取酷燃网视频数据 https://krcom.cn/ 环境 Py ...
- Scrapy爬虫框架之爬取校花网图片
Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...
- Python-爬取校花网视频(单线程和多线程版本)
一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...
- python爬虫-基础入门-爬取整个网站《3》
python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...
- python爬虫-基础入门-爬取整个网站《2》
python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...
- python爬虫-基础入门-爬取整个网站《1》
python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...
- Go语言实战-爬取校花网图片
一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...
- python实战项目 — 爬取 校花网图片
重点: 1. 指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...
- scrapy爬取校花网男神图片保存到本地
爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1.创建项目 scrapy startproject xiaohuawang scrapy.cfg: 项目的配置文件xiaohua ...
随机推荐
- 浅谈基于Intellij IDEA Maven的配置与使用
在java开发中,引入jar包的方式从种类上划分,可分为自动导入和手动导入,然而,手动导入繁琐,不是很适合当前开发模式,手动导入也被自动导入所取代. 当前,Maven和Gradle是比较主流的自动导入 ...
- 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理
在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...
- C#创建IIS站点及相应的应用程序池,支持IIS6.0+Windows Server 2003. 使用Builder设计模式
测试项目结构: PS:IIS6UtilsBuilder, IIS7UtilsBuilder,IISUtilsBuilder以及IISDirector为Builder设计模式实现的核心代码.Progra ...
- bootstrap tooltips在 angularJS中的使用
使用bootstrap自带的提示控件,省去了不少事情 <div class="s2" ng-init="InitTooltip()"> <in ...
- 第三章:shiro授权认证
授权:也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等). 主体:即访问应用的用户,在Shiro中使用Subject代表该用户.用户只有授权后才允许访问相应的资源. 资源 ...
- 《JavaScript高级程序设计》笔记:事件(十三)
事件流 事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点(文档).如下代码: <body> <div id="myDi ...
- coreRT 和 Native 编译netcore AOT程序
AOT是预编译成本地程序,避免JIT动态编译存在的性能问题. netcore一个吸引人的项目,就是基于coreRt 运行时的本地编译技术,下面我来替大家尝试一下它究竟表现如何. <Project ...
- ASP.NET没有魔法——目录(完结)
ASP.NET没有魔法——开篇-用VS创建一个ASP.NET Web程序 ASP.NET没有魔法——为什么使用ASP.NET ASP.NET没有魔法——第一个ASP.NET应用<MyBlog&g ...
- Keepalibed监控nginx
配置Keepalived监控nginx --wang 目的: 通过Keepalived实现对nginx的监控,每两秒扫描一次,如果nginx关闭,尝试重启nginx,两秒后检查nginx是否启动,如果 ...
- excel身份证验证(附带防止粘贴导致校验失效的函数)
一.检验函数 =IF(LEN(A1)=18,MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17" ...