简单记录:如何使用requests爬取网络资源

#### 为什么写这篇博客

因为要做Android的课程设计,我做了一个简单的音乐播放软件,为了有更多的数据放入到服务器端,所以我就简单学习了一下,python的requests库如何爬取网络上的资源。

###### 整个学习下来,现在的认识就是,爬取网络资源,我们无非就是从网页上获取到需要的网络资源的URL,或者复杂一点,根据一些浏览器的操作,查看更复杂的数据,然后找到这个URL。有了URL,我们很简单的就可以使用requests获取到资源

#### 正文

##### 导入:

# 导入
import requests

##### 根据URL获取到资源

headers = {
    "Referer": "http://www.6002255.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0",
    "X-Requested-With": "XMLHttpRequest"
}

post_form = {
    "input": "青花瓷 周杰伦",
    "filter": "name",
    "type": "netease",
    "page": 0
}

result = requests.get(
    url=url,
    headers=headers
)

# 或者你想向服务器发送post请求
result = requests.post(
    url=url,
    data=post_form,
    headers=headers
)

# 甚至是发送一些json数据(可能会有一些小问题,可以自行查阅别的博客解决)
import json

result = requests.post(
    url=url,
    json=json.dumps(post_form),
    headers=headers
)

明显,我们就需要一个URL和一个headers,这个headers你可以直接从你当前想要爬取的网页上获取到,例如:

而POST请求需要的那个数据,其实就是个key-value形式的字典数据,这种请求,我认为应该是用在,你无法直接获取到资源的URL时,想要通过模仿网站取请求一些数据,然后获取到资源的URL的。

所以,最终要的依然是资源的URL。

而有了资源的URL,我们一个GET请求就可以拿到数据。

##### 请求的返回

现在,我们已经有了请求得到的返回值了result,这个result有几个属性,可以让我们获取到我们想要的数据。

先了解一点:网站返回的数据有几种类型:网页、二进制数据(例如:音乐、图片)、json数据(我就知道这么多哈)

- 获取html网页文件

text = result.text

获取html网页,一般是为了利用正则表达式,从网页上获取某种信息(像一些资源的URL就在html网页文件中)。

- 获取二进制数据

data = result.content

with open("文件名.后缀", 'wb') as fp:
    fp.write(data)

这样我们就可以轻松的保存我想要的音乐和图片了。

- json数据

json_data = result.json()

这里得到的就是一个字典(我这次就是先通过查看网站的js的文件,找到了网页请求一些数据的ajax请求,然后我模仿着发出请求,然后获取到了包含着我想要的资源的URL的一个json数据)。

##### 好了,到这里基本就记录了这次使用requests爬取音乐资源的过程了。至于,爬取到的数据如何处理,如何批量爬取资源就看你自己的编程能力了哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值