如何通过网络抓取喜欢 Instagram 图片的用户?
How to web scrape users who liked an instagram picture?
我将如何从 Instagram 收集此类数据用于网络抓取项目,我尝试使用 beautifulsoup 获取它并请求 true 解析整个页面:
但它不起作用
import requests
from bs4 import BeautifulSoup
usrs=[]
soup=BeautifulSoup(requests.get("https://www.instagram.com/p/Bziq7f2C-jM/").content,'html.parser')
elem1=soup.find_all('div',class_="EtaWk")
#elem1 contains all the usernames within it
if elem1:
elem2=elem1.find('ul',class_="XQXOT")
if elem2:
xelems=elem2.findAll('ul',class_="Mr508")
for i in range(len(xelems)):
lis=xelems[i].find('a',class_="FPmhX notranslate TlrDj",title=True)
usrs.append(a["title"])
如果您不需要使用 Beautifulsoup 并自行解析 HTML 响应,则有 Instaloader,一个允许访问的 Python 库Instagram 非常容易。完成pip install instaloader
安装后,你可以
import instaloader
L = instaloader.Instaloader()
Post = instaloader.Post.from_shortcode(L.context, 'Bziq7f2C-jM')
然后,Post.get_likes()
returns 对喜欢 Post 的个人资料进行迭代,因此要打印所有用户名,您可以执行
for like in Post.get_likes():
print(like.username)
除了是一个简单的解决方案,Instaloader 还具有自动处理速率限制的优势,并且它支持处理登录和访问私人配置文件的帖子。
我将如何从 Instagram 收集此类数据用于网络抓取项目,我尝试使用 beautifulsoup 获取它并请求 true 解析整个页面: 但它不起作用
import requests
from bs4 import BeautifulSoup
usrs=[]
soup=BeautifulSoup(requests.get("https://www.instagram.com/p/Bziq7f2C-jM/").content,'html.parser')
elem1=soup.find_all('div',class_="EtaWk")
#elem1 contains all the usernames within it
if elem1:
elem2=elem1.find('ul',class_="XQXOT")
if elem2:
xelems=elem2.findAll('ul',class_="Mr508")
for i in range(len(xelems)):
lis=xelems[i].find('a',class_="FPmhX notranslate TlrDj",title=True)
usrs.append(a["title"])
如果您不需要使用 Beautifulsoup 并自行解析 HTML 响应,则有 Instaloader,一个允许访问的 Python 库Instagram 非常容易。完成pip install instaloader
安装后,你可以
import instaloader
L = instaloader.Instaloader()
Post = instaloader.Post.from_shortcode(L.context, 'Bziq7f2C-jM')
然后,Post.get_likes()
returns 对喜欢 Post 的个人资料进行迭代,因此要打印所有用户名,您可以执行
for like in Post.get_likes():
print(like.username)
除了是一个简单的解决方案,Instaloader 还具有自动处理速率限制的优势,并且它支持处理登录和访问私人配置文件的帖子。