使用Python请求登录Instagram

2024-05-31 21:00:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用python编写一个脚本,登录到http://insta.friendorfollow.com/,并获取不在后面的人的列表。我想使用“请求模块”,到目前为止我做了无数次尝试,但都没有成功。我的代码如下:

import requests, re

f = open('file', 'w')
r = requests.get('http://insta.friendorfollow.com/')
next_url = re.findall(ur'<a href=\"(.*)\" type=\"submit\"', r.content)

r = requests.get(next_url[0])

action = re.findall(ur'action=\"(.*)\"', r.content)
csrfmiddlewaretoken = re.findall(ur'name=\"csrfmiddlewaretoken\" value=\"(.*)\"', r.content)

print action
print csrfmiddlewaretoken

payload = {
'csrfmiddlewaretoken': csrfmiddlewaretoken[0],
'username': 'SOMEUSER',
'password':'SOMEPASS'
}

g = requests.post("https://instagram.com/"+action[0],
  data=payload, allow_redirects=True)


print >> f, g.text

有人能告诉我我做错了什么吗?什么才是正确的方法。一个剧本将是非常感谢。


Tags: recomhttpurlgetactioncontentrequests
2条回答

现在一切都好了

#!/usr/bin/env python

username = "username"
password = "password"

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import re

driver = webdriver.PhantomJS()
driver.get("http://insta.friendorfollow.com")
driver.find_elements_by_tag_name("a")[1].click()

print "Perimene file....".upper()
driver.find_element_by_name('username').send_keys(username)
driver.find_element_by_name('password').send_keys(password)
driver.find_element_by_class_name("button-green").click()

try:
  driver.find_elements_by_name("allow")[1].click()
except:
  pass

f = open(username+".txt", 'w')
malakes = re.findall(ur'data-id=\"([0-9]*)\"', driver.page_source)[::-1]
for malakas in malakes:
  print >> f, malakas

f.close()
driver.quit()

我成功地拿到了名单。我使用适当的身份验证访问了http://insta.friendorfollow.com/following/,可以看到响应中的用户。

下面是一个不关注我的用户的例子(Floyd似乎对我的帖子不感兴趣)

style="margin:5px" alt="floydmayweather" title="floydmayweather" src="http://images.ak.instagram.com/profiles/profile_16264572_75sq_1394805311.jpg" data-id="16264572" data-action="unfollow"

还有其他一些东西。。因此,尝试将/following添加到您的URL

相关问题 更多 >