Задать вопрос
@yar4ik007

В чем суть ошибки Python?

# coding: utf-8
import urllib
import csv
import logging

from grab.spider import Spider, Task
from grab import Grab

g = Grab(log_file='out.html')
g.go('http://login.vk.com/?act=login')
g.doc.set_input("email",  "89997776655")
g.doc.set_input("pass", "111111111")
g.doc.submit()
    
class ExampleSpider(Spider):
    
    initial_urls = ['https://vk.com/review_spb']

    def prepare(self):
        
        self.result_file = csv.writer(open('result.txt', 'w'))
        self.result_counter = 0

    def task_initial(self, grab, task):
        print ('vk home page')

        for elem in grab.doc.select('//div[@class="post all"]/div[@class="post_table"]/div[@class="post_info"]'):
             yield Task('habrapost', url=elem.get('id'))
             print (url)
             def task_habrapost(self, grab, task):
                  print ('Habrahabr topic: %s' % task.url)
                  post = {
                       'url': task.url,
                       'title': grab.xpath_text('//h1/span[@class="post_title"]'),
                       }
                  self.result_counter += 1
        
if __name__ == '__main__':
     logging.basicConfig(level=logging.DEBUG)
     bot = ExampleSpider(thread_number=1)
     bot.run()

Интерпретатор выдает :

ERROR:grab.spider.base:Error in task_initial function
ERROR:grab.spider.base:Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\grab-0.6.21-py2.7.egg\grab\spider\base.py", line 767, in process_network_result_with_handler_mp
    for something in handler_result:
  File "C:\Python27\Proekt\primer.py", line 28, in task_initial
    yield Task('habrapost', url=elem.get('id'))
AttributeError: 'XpathSelector' object has no attribute 'get'

DEBUG:grab.stat:RPS: 0.65 [fatal=1]
DEBUG:grab.spider.parser_pipeline:Started shutdown of parser process: Thread-1
DEBUG:grab.spider.parser_pipeline:Finished joining parser process: Thread-1
DEBUG:grab.spider.base:Main process [pid=3704]: work done


Что нужно сделать чтобы скрипт заработал ? и какие вообще ошибки допущены в коде ? Уверен много недочетов и ошибок, я неделю занимаюсь питоном и до этого вообще не программировал. Заодно поугараете надо мной ))))
  • Вопрос задан
  • 1090 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
valerium
@valerium
Изобретая велосипед
Python офигенно крут в том числе тем, что дефолтные исключения очень понятно описаны.

File "C:\Python27\lib\site-packages\grab-0.6.21-py2.7.egg\grab\spider\base.py", line 767, in process_network_result_with_handler_mp
    for something in handler_result:
  File "C:\Python27\Proekt\primer.py", line 28, in task_initial
    yield Task('habrapost', url=elem.get('id'))
AttributeError: 'XpathSelector' object has no attribute 'get'

Здесь написано что в строке 28 Вы пытаетесь обратиться к методу get объекта XpathSelector, но у этого объекта нет такого метода.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект