[爬虫02]request的使用

目录

1. 对文本内容的爬取 

2.对二进制资源的爬取【图片、音频等】 


1. 对文本内容的爬取 

今天,我们对 https://ssr1.scrape.center/ 该网站进行爬取

 目标:爬取第一页的电影名称(10个电影)

import requests
import re

response = requests.get('https://ssr1.scrape.center/')

# 请求时是否返回 200 状态码
response.raise_for_status()
# 对返回的内容编码做出处理,一般为 utf-8 格式
response.encoding = response.apparent_encoding

pattern = re.compile('<h2.*?>(.*?)</h2>', re.S)
titles = re.findall(pattern, response.text)

print(titles)
print("爬取电影数: ", len(titles))

对网页请求 : request.get(url地址)

对数据进行清洗——采取 re 模块

根据 html 代码分析:

 我们可以设置 pattern<h2 ....> 我们要爬取的内容 </h2>

根据上面的 推理,我们可以做出判断

<h2.*?>(.*?)</h2>

其中 (.*?) 就是我们要爬取的电影标题 而前面的.*?data-v-7f..... 一长串内容的匹配

细心的可以发现 re.compile() 中还有一个 re.S 

对于 re.S 就是可以多行去匹配 (.*?)

参考文章:关于Python中正则表达式re.S的作用

 好了,我们来看爬取的结果吧!


2.对二进制资源的爬取【图片、音频等】 

对于 文本内容 我们可以通过 requests 模块爬取了!那么图片、音频、视频等文件如何进行爬取?这时就要提到 response.content 二进制数据

 实战操作:爬取一个网站的 ico 图标,并下载到本地

如果对 文本内容的爬取 已经了解或者掌握了 ,其实对二进制也就是从 r.text 改为 r.content

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 "
                  "Safari/537.36 "
}

r = requests.get('https://static.zhihu.com/heifetz/favicon.ico', headers=headers)

r.raise_for_status()
r.encoding = r.apparent_encoding

# 二进制数据
print(r.content)

# 下载到本地
with open('zhihu-ico.ico','wb') as file:
    file.write(r.content)

print("下载完毕!")

 在代码中,我添加进了 user-agent ,为什么要进行添加?—— 模拟浏览器进行请求网页

如何获取 user-agent ?

打开 f12 工具 ,找到 网络 - 点击任意一个请求,请求标头就有 user-agent

最简单获取 user-agent 的方法,就是百度搜索 各个浏览器的 user-agent 

打开 zhihu-ico.ico 文件,我们就可以看到我们已经下载好的 知乎图标

 拓展小知识:

我们可以通过修改 url 地址,去下载各个网站的 ico 图标【前提是要有这个资源哈~】

 通过图中,红色框框圈出来的部分,就是可以修改的地方。

不仅仅是图标资源的下载,对于其他二进制资源【音频、视频】,同样适用!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fy哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值