2017-09-23 48 views
-1

我試圖從該網站上的JavaScript內容:https://js.tokopedia.com/productstats/check?pid=2156146如何將Javascript內容提取到python中?

這是我需要把我的Python代碼中一個非常簡單的JavaScript的信息,基本上我都有,我已經從JSON轉換爲項目的字典我來自同一網站的python代碼。我想用Javascript做同樣的事情並將其轉換爲python,但到目前爲止,我發現的解決方案是讓我嘗試我熟悉的Selenium,但是Selenium速度很慢。這項任務要求我從不同的uri中提取許多信息。

這裏是我的代碼片段:

for x in range (0, 3): 
with opener.open('https://ace.tokopedia.com/search/v2.6/product?shop_id=2156146&ob=11&rows=80&start='+ str(x*80) +'&full_domain=www.tokopedia.com&scheme=https&device=desktop&source=shop_product') as url: 
    data = json.loads(url.read().decode()) 
    for produk in data['data']: 
     k+=1 
     pid = produk['id'] 
     my_url = opener.open('https://js.tokopedia.com/productstats/check?pid=' + str(pid)) 
     url3 = json.loads(my_url.read().decode()) 
     print(k, produk['id'], produk['name'], produk['price'], url3['item_sold']) 

我試圖做同樣的事情與這當然沒有工作,因爲它是在JavaScript json.loads。

我忘了我做什麼,但我想,當我用我的請求得到這個intstead:<addinfourl at 2309306503576 whose fp = <http.client.HTTPResponse object at 0x00000219AD61AA20>>

幫助將非常感激。

回答

0

內容不是JSON字符串,但包含需要首先提取的JSON字符串。例如,你可以在 「(」 位置分割字符串:

content = """show_product_stats({"item_sold":0, "success":0,"reject":0})""" 
frag = content[content.index("(") + 1:-1] 

的JSON字符串轉換爲Python對象:

import json 

obj = json.loads(frag) 
print(obj) 
# -> {'item_sold': 0, 'success': 0, 'reject': 0} 
相關問題