如何将Javascript内容提取到python中?

问题描述:

我试图从该网站上的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>>

帮助将非常感激。

内容不是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}