requests+正则表达式(三)- 抓取 不思姐动态图 以及 全书网小说并保存为html文件

今天我们来抓取不思得其姐的动态图以及进入全书网下载全部小说名及内容并保存到本地html文件当中,接下来我们直接上案例(具体注释在代码中已经标明)

案例一:爬取不思姐的动态图

源码效果图分析:
8.png
经过观察源代码,我们可以编写请求方式和正则表达式了:
import requests
import re
import urllib.request
import os

#模拟成浏览器
headers = { "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" }

#爬取不思姐的动态图
def req_busijie_gif(page):
    url = "http://www.budejie.com/video/"+ str(page)#拼接请求链接
    html = requests.get(url, headers=headers)#请求网页源码
    html.encoding = "utf-8" #设置编码
    response = html.text #转换成文本
    #编写获取gif格式的整整则表达式
    # . 除了换行符和制表符以外的其他任何单个字符
    # * 前面的表达式出现任意次
    # ? 非贪婪模式
    # () 建立索引:取出来就家小括号
    reg = r'
执行完之后效果图如下:
9.png
其实上面这个例子和前面爬取静态图片的方式是一模一样的,这里要注意一下,如果是 mp4 的话也是一样的,嘿嘿,接下来我们就写一个比较深入一点的案例,爬取全书网的小说章节:
首先观察军事类全书网的分类列表效果图:
10.png
找到规律之后我们接下来先获取 小说名 和 对应的链接:
#定义抓取分类列表函数
def request_type_list():
    url = "http://www.quanshuwang.com/list/7_1.html" #如果全部爬取的话可以拼接 url
    response = requests.get(url, headers=headers)#请求
    response.encoding = "GBK" #设置编码
    html = response.text #转换成文本格式
    #编写正则表达式获取标题和链接
    reg = r''
    return re.compile(reg, re.S).findall(html) #编译获取并以列表的形式返回


接下来我们点击任意小说的链接来到介绍界面,效果图如下:
11.png
点击“开始阅读”按钮来到章节列表页面,效果图如下:
12.png
通过观察以上的两个效果图,我们可以定义我们的函数和编写我们的正则表达式了:
#根据分类列表获取“开始阅读”链接,再获取章节标题和链接
def request_beginurl_zhangjie_list(url):
    response = requests.get(url, headers=headers)
    response.encoding = "GBK"
    html = response.text
    reg = r'
.*?' #获取章节标题和对应的内容链接 data2 = re.compile(reg, re.S).findall(html) return data2
然后我们在观察下各章节的内容页面效果图:
13.png
根据效果图编写获取章节内容的函数和正则:
#获取章节内容
def request_content(url):
    response = requests.get(url, headers=headers)#获取源代码
    response.encoding = "GBK" #设置编码
    html = response.text #转换成文本
    reg = r'(.*?)
                    
                    

你可能感兴趣的:(requests+正则表达式(三)- 抓取 不思姐动态图 以及 全书网小说并保存为html文件)