url = 'https://m.weibo.cn/status/H579C8s81?ref=feedsdk&type=comment&jumpfrom=weibocom'
html = requests.get(url).text
soup = BeautifulSoup(html,'lxml')
js_code = soup.find_all("script")[1].text
打印js_code后发现,想要的值在变量render_data中,由于js_code中有好几个变量,所以要考虑怎么取到render_data
方法是:将要取的变量名"$render_data"拼接到js_code后面,这样就可以通过js2py.eval_js()方法直接取出来了。
new_js_code = js_code +'$render_data'
res = js2py.eval_js(new_js_code)
res = res.to_dict()
最后,得到的就是一个字典了。
在这里遇见了坑,访问不同的网站可能会有类似的报错:ReferenceError: document is not defined
原因就在js中,需要自己加上没有定义的变量。
网友评论