Форум сайта python.su
0
Проблема состоит в том, что результат, который выводит код скрипта, является неполным. Если например друзей
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()
Офлайн
31
Возможно поможет 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()
# -*- 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)
Офлайн