1.9 案例一

课前说明:本章节请求的 url 部分用 ** 代替

本章节需要掌握的知识点:

request.urlretrieve()  # urlretrieve函数是用来下载资源的函数,第一个参数是请求的 url,第二个参数是要保存的文件名

爬虫分三个模块:

       1、请求模块:用于构造请求体,并将请求到的网页(数据)返回给解析模块;

       2、解析模块:用于提取数据(本章节用正则提取网页中的数据),并返回数据给存储模块

       3、存储模块:用于存储数据

案例简介:

       用于抓取网页 https://www.qiushibai**.com/pic/page/ 中的图片,根据用户需求,抓取网页中的图片并下载到本地。

from urllib import request
import re
from time import sleep


# 【请求模块】
def handle_request(url, page):
    # 请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    }
    page_url = url + str(page)
    return request.Request(headers=headers, url=page_url)


def request_data(url, start, end):
    '''
    返回请求到的页面
    :param url: 请求URL
    :param start: 请求开始页
    :param end: 请求结束页
    :return:
    '''
    for page in range(start, end + 1):
        req = handle_request(url, page)
        res = request.urlopen(req)
        sleep(2)
        yield res.read().decode('utf-8')


# 【解析模块】
def analysis_html(html_list):
    '''
    解析网页
    :param html_list: 请求到的网页列表
    :return: 返回图片的url列表
    '''
    for html in html_list:
        # 用正则从HTML 字符串中匹配出所有的糗事图的url
        pat = re.compile(r'

温馨提示:好了,本案例就到此结束,记得动手敲一敲哦n(*≧▽≦*)n!不记得正则的同学可以复习一下 1.7 认识网页解析工具哦

你可能感兴趣的:(一,爬虫基础框架urllib,python爬虫从0到精通)