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.主页解析

  主页中跳转到详情页的连接在这里

python爬虫基础应用----爬取校花网视频

#使用正则可以获得详情页网址.

re.findall('<div class="items".*?<a href="(.*?)"',index_res,re.S)
  3.详情页解析

  详情页中的视频连接在这个位置 python爬虫基础应用----爬取校花网视频

  

#正则匹配获得视频的网址
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)
上一篇:Web 在线文件管理器学习笔记与总结(19)上传文件


下一篇:Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识