2014-04-08 26 views
5

Tôi đang cố gắng viết một tập lệnh bằng python, để đăng nhập vào http://insta.friendorfollow.com/ và nhận danh sách những người không theo dõi lại. Tôi muốn sử dụng "yêu cầu mô-đun", cho đến nay tôi đã thực hiện nhiều nỗ lực không có may mắn. Mã của tôi như sau:Đăng nhập vào Instagram bằng cách sử dụng các yêu cầu Python

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 

Một số người có thể cho tôi biết tôi đang làm gì sai? và nó sẽ là cách đúng đắn để làm điều đó. Một kịch bản sẽ được nhiều đánh giá cao.

Trả lời

9

Tất cả là tốt bây giờ,

#!/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() 
+0

Cảm ơn bạn đã chia sẻ điều này - Tôi không cố gắng để có ý nghĩa, chỉ cần giữ cho nó Hỏi & Đáp. (Và bởi vì bạn đăng này như là một câu trả lời bạn nhận được đại diện bạn xứng đáng từ nó). – Flexo

+0

Hiểu không có cảm xúc khó khăn, tất cả chúng ta đều có kiến ​​thức ở đây. – mahmoh

+0

WebDriverException: Thông báo: Không thể khởi động ảo bằng ghostdriver: [Lỗi 2] – Veltro

1

Tôi đã thành công trong việc nhận danh sách. Tôi đã thực hiện GET đến http://insta.friendorfollow.com/following/ với xác thực phù hợp và tôi có thể thấy người dùng trong Phản hồi.

Dưới đây là một ví dụ về một trong những người sử dụng mà không phải theo tôi (Floyd dường như không quan tâm đến bài viết của tôi)

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" 

và một số các công cụ khác .. Vì vậy, hãy thử thêm /following tới URL của bạn

+0

Xin chào @ d_rez90, tôi đã thay đổi url để http://insta.friendorfollow.com/following/ không có may mắn, bạn có thể cho tôi biết chính xác những gì bạn đã làm? Cảm ơn bạn. – mahmoh

+0

Vì vậy, tôi đọc một chút về nó, và bạn phải chắc chắn rằng bạn có một client_id thích hợp, vv Tôi chỉ làm GET với một khách hàng REST sau khi đăng nhập bằng tay, mang lại cho tôi những thông tin được nêu trong câu trả lời của tôi. Để đăng nhập qua REST, bạn có thể gửi POST tới https://api.instagram.com/oauth/authorize/?client_id=[CLIENT-ID]&redirect_uri=[REDIRECT-URI]&response_type=[code] –

+0

Ngoài ra, lỗi nào bạn đang nhận được chính xác? Hay bạn đang nhận được một phản ứng bất ngờ? –

Các vấn đề liên quan