使用BeautifulSoup从Javascript中提取文本以获取关注者数量

时间:2016-05-12 14:56:06

标签: javascript python beautifulsoup

我正在尝试自动化为几个帐户获取Instagram的粉丝数量的过程。

例如,https://www.instagram.com/taylorswift/

我曾尝试使用像BeautifulSoup这样的库。但是,面临的一个问题是,关注者的数量属于javascript类型,并且还有许多其他文本。

我的代码是:



>>> from bs4 import BeautifulSoup
>>> import requests
>>> url = "https://www.instagram.com/taylorswift/"
>>> page = requests.get(url)
>>> soup = BeautifulSoup(page.content)
>>> script = soup.select("script") 




请问如何获得追随者的数量作为唯一的输出? (即76.8m)我是python和脚本的新手:/谢谢你。

1 个答案:

答案 0 :(得分:4)

这段代码对我来说很好用:

#!/usr/bin/env python

import requests
from json import loads

username = "liamgiannini"

r = requests.get('https://www.instagram.com/'+username)
html = r.text.encode("utf-8")
text = html[html.index("window._sharedData = ")+21:]
text = (text[:text.index("};</script>")]+"}").replace('\\"', "")
dictionary= loads(text)
data = dictionary["entry_data"]["ProfilePage"][0]["user"]

print "followers: "+str(data["followed_by"]["count"])

通过打印print data.keys(),您可以访问有关用户的更多信息