Instagram抓取以获得喜欢特定媒体的用户名

时间:2018-07-01 07:26:48

标签: ruby-on-rails ruby web-scraping instagram instagram-api

我需要在我当前的ROR应用中集成Instagram抓取功能,以获取喜欢给定媒体的用户名。

我能够成功地从instagram媒体链接中抓取数据。我为此使用的网址格式为"https://www.instagram.com/p/:media_id"。但是问题在于,我只获得了喜欢该媒体的前10位用户。

此外,我读到某处我们必须传递end_cursor参数以获取下一组记录。因此,我尝试将url更改为"https://www.instagram.com/p/:media_id?max_id=end_cursor_value_from_response_of_first_url"。但是,仍然获得与先前请求相同的记录。

是否可以获取喜欢媒体的所有用户名(而不只是前10个)的列表?

注意:我也可以使用 Graphql 查询。因此,如果有人拥有使用Graphql查询的解决方案,那么对我来说将是完美的选择。

任何帮助将不胜感激。

预先感谢

更新

我尝试使用Graphql查询。请在下面找到查询:

media_id = 'MY_MEDIA_ID'
cursor_end = "CURSOR END TOKEN"
query_id = 'MY_QUERY_HASH_WHICH_I_COPIED_FROM_BROWSER'
escaped_variables_1 = CGI.escape({'shortcode': media_id, 'first': 50, 'after': cursor_end}.to_json)
url = "https://www.instagram.com/graphql/query/?query_hash=#{query_id}&variables=#{escaped_variables_1}"

uri = URI.parse(url)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
request['Cookie'] = "ig_pr=1"
http.request(request)

但是那也不起作用。

0 个答案:

没有答案