我正在尝试自动化获取几个帐户的 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 和脚本的新手:/谢谢。
最佳答案
这段代码对我来说很好用:
#!/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()
,你可以获得更多关于用户的信息
关于javascript - 使用 BeautifulSoup 从 Javascript 中提取文本以获得关注者数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37190605/