我试图用python编写一个API,它接收JSON格式的数据

2024-05-13 12:58:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个API,根据用户喜欢的商店和他们喜欢的具体商品,它将检索JSON中的数据,例如,在Tesco的Nutella搜索中,当我只对一个商店进行搜索时,它可以完美地找到,但当我对一个以上的商店进行搜索时,就会出现错误。在

我试过for循环和if循环,效果更好 从bs4导入BeautifulSoup库来完成此操作。在

我的代码:

import requests
from bs4 import BeautifulSoup

num = int(input('''press 1 for tesco
press 2 for morrisions
press 3 for sainsbury's
'''))

print("please enter the food you want to search for: ")
flag = num%2
txt = input("")

if flag == 1:
    tesco_url = requests.get('https://www.tesco.com/groceries/en-GB/search?query=' + txt).text
elif flag == 2:
    morrisons_url = requests.get('https://groceries.morrisons.com/search?entry=' + txt).text
elif flag == 3:
    sainsburys_url = requests.get('https://www.sainsburys.co.uk/webapp/wcs/stores/servlet/SearchDisplayView?catalogId=10123&langId=44&storeId=10151&krypto=OYaxfyCjgnRApUa%2FS%2BjRmgHslGfDEUtd3xECMndoz2f9gvq5KRuP8TuhW4m1jnUT%2FJU3fBivUiAIozuhmBLJJJQe6gcTedPJTASuwsZfLkt49e%2FYAPxDyWxCjeiyFxNN5WjSEdcW7LMdmfJbn3TmGVBZKVIxqu1zUw7IT8Qo2afgUyuCpJPcxPbmc2gWJMpi#langId=44&storeId=10151&catalogId=10123&categoryId=&parent_category_rn=&top_category=&pageSize=60&orderBy=RELEVANCE&searchTerm=' + txt).text

soup = BeautifulSoup(flag, 'lxml')
print(soup.prettify())

我得到的错误:

^{pr2}$

Tags: texthttpstxturlforsearchgetif
1条回答
网友
1楼 · 发布于 2024-05-13 12:58:07

beauthoulsoup需要XML,您可能在添加更多存储时忘了更新XML。另外,我不确定为什么要使用flag = num%2,因为标志将只有值[0,1]。如果将flag替换为num,那么它应该可以正常工作。在

import requests
from bs4 import BeautifulSoup

num = int(input('''press 1 for tesco
press 2 for morrisions
press 3 for sainsbury's
'''))

print("please enter the food you want to search for: ")
flag = num                   # < - notice this
txt = input("")

if flag == 1:
    markup = requests.get('https://www.tesco.com/groceries/en-GB/search?query=' + txt).text
elif flag == 2:
    markup = requests.get('https://groceries.morrisons.com/search?entry=' + txt).text
elif flag == 3:
    markup = requests.get('https://www.sainsburys.co.uk/webapp/wcs/stores/servlet/SearchDisplayView?catalogId=10123&langId=44&storeId=10151&krypto=OYaxfyCjgnRApUa%2FS%2BjRmgHslGfDEUtd3xECMndoz2f9gvq5KRuP8TuhW4m1jnUT%2FJU3fBivUiAIozuhmBLJJJQe6gcTedPJTASuwsZfLkt49e%2FYAPxDyWxCjeiyFxNN5WjSEdcW7LMdmfJbn3TmGVBZKVIxqu1zUw7IT8Qo2afgUyuCpJPcxPbmc2gWJMpi#langId=44&storeId=10151&catalogId=10123&categoryId=&parent_category_rn=&top_category=&pageSize=60&orderBy=RELEVANCE&searchTerm=' + txt).text

soup = BeautifulSoup(markup, 'lxml')
print(soup.prettify())

相关问题 更多 >