文章目录
- 一、requests_html 基本介绍
- 二、requests_html 基本使用
- 三、发送带有参数的请求
- 四、图片抓取实战案例
一、requests_html 基本介绍
A、装库: pip install requests_html
 B、介绍: requests 和 requests_html 是同一个作者
二、requests_html 基本使用
A、导包: from requests_html import HTMLSession
 B、使用: session = HTMLSession()
三、发送带有参数的请求
params = {
 }
 requests.get(url, params=params)
四、图片抓取实战案例
案例实战:使用requests_html库抓取图片
 部分效果如图所示:
 
附上部分代码如下:
import os
from requests_html import HTMLSession
class BdtpSpider(object):
    def __init__(self):
        '''
            1、初始化部分
        '''
        self.keyword = '风景'
        self.session = HTMLSession()
        self.start_url = ''
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
        }
    def confrim_params(self):
        '''
            2、确认请求参数
        '''
        for index in range(1, 2):
            print('\n' + '-------------正在下载: 第{}页-------------'.format(index) + '\n')
            params = {
            
        }
            self.requests_start_url(params)
    def requests_start_url(self, params):
        '''
            3、请求起始地址
        '''
        response = self.session.get(self.start_url, params=params, headers=self.headers).json()
        self.parse_resposne(response)
    def parse_resposne(self, response):
        '''
            4、解析图片名字, 图片地址
        '''
        for data_info in response['data'][0: -1]:
            img_name = data_info['fromPageTitleEnc']
            img_name = img_name.replace('?', '').replace(' ', '').replace(',', '').replace(':', '')
            img_url = data_info['middleURL']
            self.requests_img_url(img_name, img_url)
    def requests_img_url(self, img_name, img_url):
        '''
            5、请求获取图片二进制
        '''
        img_content = self.session.get(img_url).content
        self.create_dir(img_name, img_content)
    def create_dir(self, img_name, img_content):
        '''
            6、创建文件夹
        '''
        if not os.path.exists('{}'.format(self.keyword)):
            os.mkdir('{}'.format(self.keyword))
        self.save_data(img_name, img_content)
    def save_data(self, img_name, img_content):
        '''
            7、保存数据
        '''
        try:
            with open('{}/{}.jpg'.format(self.keyword, img_name), 'wb') as f:
                f.write(img_content)
            print('下载完成: {}.jpg'.format(img_name))
        except Exception as e:
            print('下载失败: {}.jpg'.format(img_name))
    def main(self):
        '''
            逻辑控制部分
        '''
        self.confrim_params()
if __name__ == '__main__':
    bdtp = BdtpSpider()
    bdtp.main()


















![打卡信奥刷题(20)用Scratch图形化工具信奥B3756 [信息与未来 2021] 幸运数字](https://img-blog.csdnimg.cn/direct/90176ccdf56b42d79822ebcb62d536e7.png)
