Python JSON获取多个网站的请求

时间:2017-12-05 09:50:54

标签: python json web-scraping

我正在尝试在多个网址上发出json get请求。 (我是编程的新手,你将在下面看到。)

我的目标是使用多个链接运行此python脚本。唯一需要更改的是链接的“b”部分,因此它可以使用不同的数字(字符串)运行多个搜索,最好使用数字列表并将所有结果导出到csv列表。

我的问题是:我应该如何更改代码,以便我可以使用“b”的数字列表并获取所有请求? (像一个循环)

请在下面找到我的代码并感谢您的时间。

import requests
import json

a = 'https://www.g2a.com/lucene/search/filter?jsoncallback=jQuery111002521088376353553_1491736907010&skip=28837%2C28838%2C28847%2C28849%2C28852%2C28856%2C28857%2C28858%2C28859%2C28860%2C28861%2C28862%2C28863%2C28867%2C28868%2C28869%2C29472%2C29473%2C29474%2C29475%2C29476%2C29482%2C29486%2C33104&minPrice=0.00&maxPrice=640.00&cn=&kr=&stock=all&event=&platform=0&search=&genre=0&cat=0&sortOrder=popularity+desc&start=0&rows=12&steam_app_id='
b = '515220' 
c = '&steam_category=&steam_prod_type=&includeOutOfStock=false&includeFreeGames=false&_=1491736907012'
d = a + b + c

r = requests.get(d)
json_object = json.loads('{"data":%s}}' % (response.content.decode("utf-8").replace("jQuery111002521088376353553_1491736907010(", "")[:-2].replace("\'", "")))
for game in json_object["data"]["docs"]:
print ("Name: %s (Price: %s)" % (game["name"], game["minPrice"]))

1 个答案:

答案 0 :(得分:0)

您可以循环显示b值列表,如下所示

l = [1,2,3,4]

for b in l:
    d = a + b + c
    r = requests.get(d)
    json_object = json.loads('{"data":%s}}' % (response.content.decode("utf-8").replace("jQuery111002521088376353553_1491736907010(", "")[:-2].replace("\'", "")))
    for game in json_object["data"]["docs"]:
    print ("Name: %s (Price: %s)" % (game["name"], game["minPrice"]))