我目前面临的问题是我无法从某个特定的网站上获取我想要的信息。在
详细地说,我想得到所有的项目和价格的观光,其中是在JSON。在
到目前为止,我能把所有的价格都拿回来,但也没有把所有的东西都拿回来。我只想拿回一件特别的东西。在
不知道是什么问题。在
这就是我目前的逻辑:
session = requests.Session()
session.cookies.get_dict()
url = 'http://www.citydis.com'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = session.get(url, headers=headers)
soup = BeautifulSoup(response.content, "html.parser")
metaConfig = soup.find("meta", property="configuration")
jsonUrl = "https://www.citydis.com/s/results.json?&q=London& customerSearch=1&page=0"
js_dict = (json.loads(response.content.decode('utf-8')))
for item in js_dict:
header = (js_dict['searchResults']["tours"])
for titles in header:
title_final = (titles.get("title"))
url = (js_dict['searchResults']["tours"])
for urls in url:
url_final = (urls.get("url"))
price = (js_dict['searchResults']["tours"])
for prices in price:
price_final = (prices.get("price")["original"])
print("Header: " + title_final + " | " + "Price: " + price_final)
这就是输出:
^{pr2}$正如你们看到的,价格显示正确,但项目(标题)没有区别。我只想拿回一件特别的东西。在
你们能帮帮我吗?欢迎任何反馈。在
这段代码运行,在它的末尾,
^{pr2}$title_final
有一个值,代码继续下一步。Python不会神奇地跟踪分配给变量的所有值,然后将不同的for循环链接在一起。您需要在单个循环中执行所有操作,或者将数据存储在列表中,并将它们与zip
或其他东西组合起来。在您没有使用
item
。你只是直接从循环内的字典中得到东西:你重复了三次,所以
header == url == price
。在停下来想想你的代码。把
print
语句放在这里和那里,看看发生了什么,变量的值是什么。在你的for循环不正确。您的每个
prices in price
中只有1个(最后一个)title_final
,因此存在问题。在你可能想-
相关问题 更多 >
编程相关推荐