一.爬虫简单介绍

  爬虫是什么?

  爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序.

  爬虫程序包括哪些模块?

  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爬虫基础应用----爬取校花网视频的更多相关文章

  1. Python爬虫训练:爬取酷燃网视频数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 项目目标 爬取酷燃网视频数据 https://krcom.cn/ 环境 Py ...

  2. Scrapy爬虫框架之爬取校花网图片

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  3. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  4. python爬虫-基础入门-爬取整个网站《3》

    python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...

  5. python爬虫-基础入门-爬取整个网站《2》

    python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...

  6. python爬虫-基础入门-爬取整个网站《1》

    python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...

  7. Go语言实战-爬取校花网图片

    一.目标网站分析 爬取校花网http://www.xiaohuar.com/大学校花所有图片. 经过分析,所有图片分为四个页面,http://www.xiaohuar.com/list-1-0.htm ...

  8. python实战项目 — 爬取 校花网图片

    重点: 1.  指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...

  9. scrapy爬取校花网男神图片保存到本地

    爬虫四部曲,本人按自己的步骤来写,可能有很多漏洞,望各位大神指点指点 1.创建项目 scrapy startproject xiaohuawang scrapy.cfg: 项目的配置文件xiaohua ...

随机推荐

  1. SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  2. ubuntu:xxx is not in the sudoers file. 问题解决

    ubuntu 下普通用户用 sudo 执行命令时报 "xxx is not in the sudoers file.This incident will be reported" ...

  3. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

  4. CentOS 7.4 下 如何部署 AspNetCore 结合 consul

    上篇我们讲到consul的概念,以及在WIN下如何使用:http://www.cnblogs.com/szlblog/p/9162557.html 步骤如下: 1.安装虚拟机VM 2.下载安装 Cen ...

  5. 【开源分享】微信营销系统(第三方微信平台)github 开源

    升讯威微信营销系统(微信第三方平台) 在线体验:http://wxcm.eeipo.cn/开源地址GitHub:https://github.com/iccb1013/Sheng.WeixinCons ...

  6. div在另一个div居中对齐

    position:fixed; top:0; right:0; left:0; bottom:0; margin:auto;

  7. flex-骰子布局

    弹性容器单行:主轴居中,交叉轴居中. display: flex; flex-direction: row; align-items: center; justify-content: center; ...

  8. 简单的纯js三级联动

    参考这个  日尼禾尔  二级联动 写了三级联动 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  9. 搭建 structs2 环境

    前言 环境: window 10 ,JDK 1.8 ,Tomcat 7 ,MyEclipse 2014 pro 搭建 SSH 环境的步骤 创建 JavaWeb 项目 导入 structs2 的jar包 ...

  10. Git常用命令使用大全

    1.查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id ...