走心Python实战应用:【requests+re 模块】快速下载原shen图片

嗨害大家好鸭!我是爱摸鱼的芝士❤

这次给大家带来的是模块+实战

以便大家理解学习

觉得写的好的话,可以给我多多点赞鸭~

在这里插入图片描述


一、理解Python requests 模块

Python 内置了 requests 模块,
该模块主要用来发 送 HTTP 请求,
requests 模块比 urllib 模块更简洁。

实例

# 导入 requests 包
import requests

# 发送请求
x = requests.get('这里放网址')

# 返回网页内容
print(x.text)

每次调用 requests 请求之后,
会返回一个 response 对象,
该对象包含了具体的响应信息。

实例

# 导入 requests 包
import requests

# 返回 http 的状态码
print(x.status_code)

# 响应状态的描述
print(x.reason)

# 返回编码
print(x.apparent_encoding)

输出结果如下:

200
OK
utf-8

请求 json 数据文件,
返回 json 内容:

实例

# 导入 requests 包
import requests

# 发送请求
x = requests.get('https://网站网址/try/ajax/json_demo.json')

# 返回 json 数据
print(x.json())

二、requests 方法

requests 方法如下表:

在这里插入图片描述

使用 requests.request() 发送 get 请求:

实例

# 导入 requests 包
import requests

# 发送请求
x = requests.request('get', 'https://网址/')

# 返回网页内容
print(x.status_code)

输出结果如下:

200

设置请求头:

实例

# 导入 requests 包
import requests

 
kw = {'s':'python 教程'}

# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("这里放网址", params = kw, headers = headers)

# 查看响应状态码
print (response.status_code)

# 查看响应头部字符编码
print (response.encoding)

# 查看完整url地址
print (response.url)

# 查看响应内容,response.text 返回的是Unicode格式的数据
print(response.text)

输出结果如下:

200
UTF-8
这里是网址?s=python+%E6%95%99%E7%A8%8B

... 其他内容...

三、ruqusets 模块实战案例

纸上得来终觉浅,绝知此事要躬行

接下来就来案例实战吧

这次的网站如下图:

在这里插入图片描述

本次采集的目标是:

将这个网站的官方漫画采集下来

在这里插入图片描述

为什么要打码呢?

因为不打码就过不辽审核…

❤部分代码展示

导入模块
import requests
import re
发送请求
def get_response(html_url):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari'
    }
    response = requests.get(url=html_url, headers=headers)
    return response
获取数据
def get_chapter(html_url):
    html_data = get_response(html_url).text
    chapter_list = re.findall('"(\d+)","第.*?话', html_data)
    return chapter_list
获取章节ID
def get_img_info(chapter_id):
    link = f'F12开发者工具获取'
    chapter_text = get_response(html_url=link).text
    img_list = re.findall('<img .*?src="(.*?)"', chapter_text)
    title = re.findall('false,"(.*?)"', chapter_text)[0]
    return img_list, title
保存数据
def save(img, file):
    img_content = get_response(img).content
    with open(file, mode='wb') as f:
        f.write(img_content)
    print(img)

❤效果展示

夹带私货,截取一下海哥全脸哈哈哈

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

💢碎碎念预警:

可能会有人问我为什么不直接去官网上一章章看…

首先,这是一个锻炼项目,

目的是自己对requests模块的熟练程度进行加深;

其次,我真的很懒,

一次性全下载下来就很方便

万一想用手机看,

想看就马上看了鸭,

就没那么麻烦了(懒)

最后,是自己看,自己用,公开数据

总有那么些人总要杠我一下,

一次性说清楚用法用途,真的不理解意思就算了。

不管你是想磨练自己的技术还是想赚外包,
别触犯法律、别伤害他人就行。


更多更有趣野生的python知识,
可以关注公众号❤:python小熊猫

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值