Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2014 16:31:27

scamp68
Зарегистрирован: 2014-03-21
Сообщения: 8
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите вывести полный список друзей с vk.com ?

Проблема состоит в том, что результат, который выводит код скрипта, является неполным. Если например друзей
250, то выводит 30. Я так понимаю, что это все заключается в специфике конструкции сайта: “данные загружаются только при пролистывании страницы вниз”. Помогите разобраться.

Использую Selenium Webdriver + Python

Ссылка на сайт

Скриншот результата

Мое решение

import unittest
from selenium import webdriver
class TestPriceUa(unittest.TestCase):
	driver = None
		
	def setUp(self):
		self.driver = webdriver.Firefox()
		self.driver.implicitly_wait(60)
			
	def test_filter(self):
		self.driver.get("http://vk.com")
		self.driver.find_element_by_id("quick_email").send_keys('INPUT LOGIN')
		self.driver.find_element_by_id("quick_pass").send_keys('INPUT PASSWORD')
		self.driver.find_element_by_id("quick_login_button").click()
		self.driver.find_element_by_id("l_fr").click()
		friends = self.driver.find_elements_by_css_selector('.friends_field>a>b')
		
		for list in friends:
			print (list.text)
		
	#def tearDown(self):
		#self.driver.close()
		
if __name__ == "__main__" :
	unittest.main()

Я не могу разобраться, как мне вытащить и вывести список всех друзей

Офлайн

#2 Апрель 8, 2014 18:55:48

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Помогите вывести полный список друзей с vk.com ?

Возможно поможет API

# -*- coding: utf-8 -*-
import vk_api
import time
def main():
    global response
    login = u'*********'
    password = u'*******'
    try:
        vk = vk_api.VkApi(login, password)  # Авторизируемся
    except vk_api.authorization_error as error_msg:
        print(error_msg)  # В случае ошибки выведем сообщение
        return  # и выйдем
    response = vk.method('newsfeed.get')  # Используем метод 
    t=(response['items'][1])  # Печатаем текст последней новости
    
    def text_all():#перебор текста новостей
        token='text'
        n=response['items']
        for i in n:
            if token in i:
                
                print i[token]
                #print i['comments']
                dat= i['date']
                print time.ctime(int(dat))
                print '___________________________________________________________________'
    text_all()
    
    try:
        print t['text']
    except: pass
if __name__ == '__main__':
    main()
http://vk.com/pages?oid=-1&p=friends.get
# -*- coding: cp1251 -*-
import vk_api
def main():
    
    login = u'******'
    password = u'******'
    try:
        vk = vk_api.VkApi(login, password)  # Авторизируемся
    except vk_api.authorization_error as error_msg:
        print(error_msg)  # В случае ошибки выведем сообщение
        return  # и выйдем
    response = vk.method('friends.get?fields="nickname"') # Используем метод 
    
    #print response
    token='first_name'
    last = 'last_name'
    for i in response:
                  
        print i[token],i[last] #выводим список друзей
        
if __name__ == '__main__':
    main()
    
    

Отредактировано sanodin (Апрель 9, 2014 10:05:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version