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 ...
随机推荐
- 客户端浏览器- UWP兼容版本WebView
WebView简介 在win10之前,浏览器控件有WPF版本webBrowser.Winform版本WebBrowser,浏览器内核为IE. win10之后,微软不再维护原有的WebBrowser,转 ...
- 折腾Java设计模式之建造者模式
博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...
- Deepin Linux系统的日常使用总结(日常施工)
1.登录root权限用户 sudo su 2.安装软件语句 apt-get install <package_name> 相对的, 安装:apt-get install <packa ...
- 【土旦】Vue+WebSocket 实现长连接
1.websocket 连接代码 created() { this.initWebsocket() }, methods: { // 初始化websocket initWebsocket() { le ...
- js函数式编程术语总结 - 持续更新
参考文档1 参考文档2 函数式编程术语 高阶函数 Higher-Order Functions 以函数为参数的函数 返回一个函数的函数 函数的元 Arity 比如,一个带有两个参数的函数被称为二元函数 ...
- 判断点在多边形内算法的C++实现
目录 1. 算法思路 2. 具体实现 3. 改进空间 1. 算法思路 判断平面内点是否在多边形内有多种算法,其中射线法是其中比较好理解的一种,而且能够支持凹多边形的情况.该算法的思路很简单,就是从目标 ...
- maven+springMVC(一)
[目录]
- kkkK的随笔
自我介绍 学号:211606310 姓名:柯伟敏 爱好:篮球,足球 最爱的菜:4堂的饺子 最想说的话:一切都是最好的安排 初入大学 -------------------- 选择 选择软件工程这个专业 ...
- Docker-Linux环境安装
不同服务器操作系统安装命令不同,例如centOS默认用yum,Ubuntu可能默认用apt-get.这里推荐一种安装方式,通过下载shell脚本 https://get.docker.com,会检测操 ...
- C#几个经常用到的字符串的截取
string str="123abc456";int i=3;1 取字符串的前i个字符 str=str.Substring(0,i); // or str=str.Remov ...