Форум сайта python.su
26
Хочу собрать списки сайтов из LI
# -*- coding: UTF-8 -*- import logging from grab.spider import Spider, Task from grab import Grab class SimpleSpider(Spider): initial_urls = ['http://www.liveinternet.ru/rating/banks/month.html?page=' + str(i+1) for i in xrange(1)] results = [] def task_initial(self, grab, task): for g in grab.doc.select('//table/tr[@class="high"]'): print g.html().encode('utf8') #print g.select('//tr').html().encode('utf8') if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) bot = SimpleSpider() bot.run() #print bot.render_stats()
Офлайн
# может быть надо экранировать (), не помню sites = grab.xpath_text('//a[@onclick="cl(this)"]/@name') sites = grab.xpath_text('//a[@onclick="cl\(this\)"]/@name') # А можно и так сделать sites = grab.xpath_text('//a/@name') # Оказывается я уже старичок :) Вот к чему приводит людей python3.. # вот так работает from grab import Grab g = Grab() g.go('http://www.liveinternet.ru/rating/banks/month.html?page=1') sites = [x.text() for x in g.doc.select('//a/@name')] # Чтобы получить еще и посещаемость надо заюзать это '//a/@name | //tr[@class="high"]/td[3]/text()' # советую почитать доку по lxml
Отредактировано kise97 (Янв. 29, 2014 21:49:56)
Офлайн
75
ajib6ept
for g in grab.doc.select('//table/tr[@class="high"]'): g.select('.//tr')
Отредактировано Singularity (Янв. 30, 2014 04:24:33)
Офлайн