python_接口返回数据通过json提取和正则表达式提取

这篇博客介绍了如何利用Python的requests和正则表达式模块,从搜狗图片搜索中抓取风景图片的URL。首先,定义所需参数并发起GET请求,然后通过解析返回的HTML,提取picUrl字段的值。提供了两种方法,一种是通过json解析,另一种是通过正则表达式匹配,分别打印出所有图片链接。
摘要由CSDN通过智能技术生成

一、准备工作

1、需要用到的网站

https://pic.sogou.com/

2、需要使用的模块

pip install requests

二、获取指定信息

  • 首先,通过浏览器打开上面的地址,搜索“风景”,然后按F12打开调试窗口,并点击左上角“全部”按钮,获取接口
    在这里插入图片描述
  • 查看Preview返回的数据,picUrl的值,就是我们要获取的信息

在这里插入图片描述
1、通过json提取

import requests
import json


def img():
    data = {
            "mode": "1",
            "start": "0",
            "xml_len": "48",
            "query": "风景"
        }  # 需要传入的参数
    url = "https://pic.sogou.com/napi/pc/searchList?"  # 网址
    res = requests.get(url, data)  # 请求
    Obtain = json.loads(res.text)  # 把json转化为字典
    a = Obtain['data']['items']  # 查找到items的值
    for i in a:
        print(i['picUrl'])  # 循环打印picUrl的值


if __name__ == "__main__":
    img()

在这里插入图片描述
1、通过正则表达式提取

import requests
import re


def img():
    data = {
            "mode": "1",
            "start": "0",
            "xml_len": "48",
            "query": "风景"
        }  # 需要传入的参数
    url = "https://pic.sogou.com/napi/pc/searchList?"  # 网址
    res = requests.get(url, data)  # 请求网页
    pattern = re.compile(r'"(picUrl)":"(.*?)"')  # r的意思是不转义,即\表示原样的\
    match = re.findall(pattern, res.text)  # 获取所有的('picUrl', 'http://***')信息
    for i in match:
    	print(i)
        print(i[1])  # 获取地址


if __name__ == "__main__":
    img()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值