# import json
# import requests
# #url="https://openapi.vmall.com/mcp/offlineshop/getShopList" #https://m.vmall.com/help/hnrstoreaddr.htm
# url="https://openapi.vmall.com/mcp/offlineshop/getShopList"
#
# heardes={"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
# }
# data={
# "portal":'2',
# "lang":"zh-CN",
# "country":"CN",
# "brand":'1',
# "province":"广东省",
# "city":"深圳市",
# "pageNo":'1',
# "pageSize":'20'
# }
# # - 注意:请求参数为字典格式并非常规的键值对,所以在代码实现中需要使用dumps将字典转成json 串作为请求参数
#
# respons=requests.post(url=url,data=json.dumps(data)).text
# #print(respons)
# #print(type(respons))
#
# # _id=[]
# temp=[]
# # #此处需要转换成字典
# for dic in json.loads(respons)['shopInfos']: # 是个json数据,所以要json.loads(),才能把json格式转为python识别的格式
# _id=dic['id']
# #print(_id)
# temp.append(_id)
#
#
# # # 拼接详情页的url
# for page in range((len(temp))):
# detail_url = 'https://openapi.vmall.com/mcp/offlineshop/getShopById?portal=2&version=10&country=CN&shopId={}&lang=zh-CN'.format(_id)
# #print(detail_url)
# print(detail_url)
# params = {
# 'portal': '2',
# 'version': '10',
# 'country': 'CN',
# 'shopId': str(page),
# 'lang': 'zh - CN'
# }
# respons_url=requests.get(url=detail_url,params=params).text
# print(respons_url)
# # for q in json.loads(respons_url)['shopInfo']:
# # name=q["brand"]
# # print(name)
# # #for q in json.loads(respons_url)['shopInfo']:
# # #print(respons_url)
# # #print(respons_url)
# # #print(q.get('address'))
#
""""结尾仍然没有计算出来,错误在44行"""
import requests
import json
url = 'https://openapi.vmall.com/mcp/offlineshop/getShopList'
data={
"portal":'2',
"lang":"zh-CN",
"country":"CN",
"brand":'1',
"province":"广东省",
"city":"深圳市",
"pageNo":'1',
"pageSize":'20'
}
#从中解析出id
json_data = requests.post(url,data=json.dumps(data)).json()
print(json_data)
print("========================")
for dic in json_data['shopInfos']:
_id = dic['id']
#拼接详情页的url
detail_url = 'https://openapi.vmall.com/mcp/offlineshop/getShopById?portal=2&version=10&country=CN&shopId={}&lang=zh-CN'.format(_id)
finally_data = requests.get(url=detail_url).json()
print(finally_data)#每一页详情页url的数据
如下两种方法找被列表包裹的字典值
方法一:
s={'words_result': [{'words': '在别人眼里我就像一个怪物'}, {'words': "But in others' eyes, I'm like a monster."}],
'log_id': 1384035241005416448, 'words_result_num': 2}
aa=(s['words_result'])
for i in s['words_result']:
print(i['words'])
方法二
s={'words_result': [{'words': '在别人眼里我就像一个怪物'}, {'words': "But in others' eyes, I'm like a monster."}],
'log_id': 1384035241005416448, 'words_result_num': 2}
print(s['words_result'][0]['words'],s['words_result'][1]['words'])