用 php 的 curl_post 写一个爬取淘宝商品详情数据 api 接口

2023-09-08 18:35:15 浏览数 (1)

01

抓包做准备

要做一个抓取的,当然是先抓包啦~

拿出我的 bp,和 zoomeye 篇一样先输入一个关键字,方便在 bp 里面找我输入的关键字

然后回车~

发现我输入的关键字在这个 GET 的请求包里面

用 repeat 模块后:

发现返回了我要的搜索结果

02

使用 php 的 curl 来模拟访问

PHP 支持的由 Daniel Stenberg 创建的 libcurl 库允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl 目前支持 http、https、ftp、gopher、telnet、dict、file 和 ldap 协议。libcurl 同时也支持 HTTPS 认证、HTTP POST、HTTP PUT、 FTP 上传 (这个也能通过 PHP 的 FTP 扩展完成)、HTTP 基于表单的上传、代理、cookies 和用户名 密码的认证。

PHP 中使用 cURL 实现 Get 和 Post 请求的方法

这些函数在 PHP 4.0.2 中被引入。

就是说,在 php4.0.2 中就已经引入了 curl,而且还可以做 post 和 get,真是太有用了有木有.

请求示例

代码语言:javascript复制
# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-gw.xxxx.cn/taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1"
headers = {
    "Accept-Encoding": "gzip",
    "Connection": "close"
}
if __name__ == "__main__":
    r = requests.get(url, headers=headers)
    json_obj = r.json()
    print(json_obj)

响应示例(部分参数)

代码语言:javascript复制
{
    "item": {
      "num_iid": "520813250866",
      "title": "三刃木折叠刀过安检创意迷你钥匙扣钥匙刀军刀随身多功能小刀包邮",
      "desc_short": "",
      "price": 25.8,
      "total_price": 0,
      "suggestive_price": 0,
      "orginal_price": "25.80",
      "nick": "欢乐购客栈",
      "num": "832",
      "min_num": 0,
      "detail_url": "http://item.taobao.com/item.htm?id=520813250866",
      "pic_url": "//img.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg",
      "brand": "三刃木",
      "brandId": "4036703",
      "rootCatId": "50013886",
      "cid": "50014822",
      "favcount": "4824",
      "fanscount": "1469",
      "crumbs": [],
      "created_time": "",
      "modified_time": "",
      "delist_time": "",
      "desc": "<p style="text-align:center;"><span style="color:#ff0000;"><span style="font-size:24.0px;"><strong>小店所有产品都支持刻字,如需刻字,拍之前联系客服即可。</strong></span></span></p> <p style="text-align:center;"><span style="font-size:18.0px;"><strong>炎炎夏日来临,一把随身携带便携式的折叠小刀,<span style="color:#ff0000;">带开瓶器功能</span>,喝酒不用愁。(钥匙刀不带开瓶器功能)</strong></span></p> <p style="text-align:center;"><strong style="color:#000000;line-height:1.5;"><span style="font-size:18.0px;"><span style="line-height:18.0px;">可以当吊牌项链装饰,也可当钥匙扣挂饰, 水果刀 开瓶器 户外防身.</span></span></strong></p> <p style="text-align:center;"><strong style="line-height:1.5;"><span style="font-size:24.0px;">部分客户跟我们反映链子质量还不够好,因此小店已重新订购一批质量更好的链子赠送,<span style="color:#ff0000;">加量不加价</span>,只为让你买的更舒心,戴的更放心。</span></strong></p> <p style="text-align:center;"><span style="font-size:36.0px;"><strong>购买就送<span style="color:#ff0000;">工具刀卡和链子</span>一条</strong></span></p> <p style="text-align:center;"><span style="font-size:36.0px;"><strong><img align="absmiddle" src="//img.alicdn.com/imgextra/i3/2596264565/TB2Sci2jXXXXXXFXpXXXXXXXXXX_!!2596264565.png" size="611x442"> </strong></span></p> <p style="text-align:center;"><span style="font-size:18.0px;"><strong>璀璨钻石套餐包含【SK016D钥匙扣 GJ019C折叠刀 GJ017D工具卡】</strong></span><img align="absmiddle" src="//img.alicdn.com/imgextra/i3/2596264565/TB2wWohmXXXXXX8XXXXXXXXXXXX_!!2596264565.jpg" size="750x600" /></p> <p style="text-align:center;"><span style="font-size:18.0px;"><strong>超凡大师套餐包括【304不锈钢钥匙扣 GJ019C折叠刀 GJ017D工具卡】</strong></span><a href="//item.taobao.com/item.htm?id=520798805877" target="_blank"><img align="absmiddle" src="//img.alicdn.com/imgextra/i4/2596264565/TB2_uiXnFXXXXXBXXXXXXXXXXXX_!!2596264565.jpg_q90.jpg" style="float:none;margin:0.0px;" /></a></p> <p style="text-align:center;">&nbsp;</p> <p style="text-align:center;"><span style="font-size:18.0px;"><strong>最强王者套餐包括【钛钢钥匙扣 GJ019C折叠刀 GJ017D工具卡】<a href="//item.taobao.com/item.htm?id=520801586805" target="_blank"><img align="absmiddle" src="//img.alicdn.com/imgextra/i4/2596264565/TB2Gm9xnFXXXXbmXXXXXXXXXXXX_!!2596264565.jpg_q90.jpg" style="float:none;margin:0.0px;" /></a> </strong></span></p> <p style="text-align:center;"><img align="absmiddle" src="//img.alicdn.com/imgextra/i3/2596264565/TB28Ox4b77OyuJjSsplXXXqdpXa_!!2596264565.jpg" size="749x553"> <img align="absmiddle" src="//img.alicdn.com/imgextra/i1/2596264565/TB2.mTddVXXXXbeXpXXXXXXXXXX_!!2596264565.jpg" style="line-height:1.5;" size="750x653"><img align="absmiddle" src="//img.alicdn.com/imgextra/i3/2596264565/TB21Ro.jl0lpuFjSszdXXcdxFXa_!!2596264565.jpg" size="750x653"> <img

以上示例中,通过发送 HTTP /POST/GET 请求获取淘宝商品列表和详情的 API 数据,然后将返回的 JSON 数据解析为对应的数据结构,以便进一步处理和使用。请注意,实际情况中,您还需要根据 API 文档和要求来构建请求、处理异常情况和其他实现细节。

综上所述,淘宝 API 接口是基于开放平台的,没有开放平台就没有 API 接口。淘宝 API 接口又是更加便利的,是电商公司管理获取数据的小帮手(WeChat  Taobaoapi2014)。同时,还可以通过 API 接口发展出跨境电商业务。淘宝 API 接口入点(按图搜索,商品详情,关键词搜索,商品评论,订单类接口),希望以上的示例,可以帮到有需要的朋友。

0 人点赞