# 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
Что нужно сделать чтобы скрипт заработал ? и какие вообще ошибки допущены в коде ? Уверен много недочетов и ошибок, я неделю занимаюсь питоном и до этого вообще не программировал. Заодно поугараете надо мной ))))