# -*- coding: utf-8 -*- from grab import Grab import time, random g = Grab() g.setup(hammer_mode=True, hammer_timeouts=((2, 5), (10, 15), (20, 30))) a = 4 i = 0 while a < 650: g.go('http://www.anekdotov-mnogo.ru/smeshnie_kartinki.php?page='+str(a), log_file='outpage.html') time.sleep(2) print 'page-' + str(a) for elem in g.doc.select("html/body/table/tbody/tr/td/div/p/img")[0:15]: img = elem.attr('src') print img g.go('http://www.anekdotov-mnogo.ru/' + str(img)) rand = random.randint(0, 9999) f = open("/home/montana/biz/python/tools/fotostrana/parser/umor/18.12.2014/" + str(rand)+ '-' + str(i) +".jpg", "wb") #print '%s' % (elem.attr('src')) f.write(img) f.close() print 'foto-'+str(i) i = i + 1 time.sleep(2) a = a+1
С сайта нужно взять все юморные картинки , но скрипт не находит нужные элементы. Ошибок не выдает. Просто работает по while но в for не переходит Пробовал и так
# -*- coding: utf-8 -*- import requests from lxml import html import sys import urlparse a = 4 while a < 650: print 'page-'+str(a) response = requests.get('http://www.anekdotov-mnogo.ru/smeshnie_kartinki.php?page='+str(a)) parsed_body = html.fromstring(response.text) # Парсим ссылки с картинками images = parsed_body.xpath('html/body/table/tbody/tr/td/div/p/img@src') if not images: sys.exit("Found No Images") # Конвертирование всех относительных ссылок в абсолютные images = [urlparse.urljoin(response.url, url) for url in images] print 'Found %s images' % len(images) # Скачиваем только первые 10 for url in images[0:15]: r = requests.get(url) f = open('/home/montana/biz/python/tools/fotostrana/parser/umor/18.12.2014/%s' % url.split('/')[-1], 'w') f.write(r.content) f.close() a = a + 1