Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
# coding=utf-8
import codecs
from grab import Grab
from lxml import html
g = Grab()
BOOK_ID = '115980' # ID книги, которую нам нужно скачать
paragraphs= [] # Сюда будем складывать собранные параграфы
title = "" # Здесь разместим найденный заголовок книги
# Собираем контент
for i in xrange(1,1000): # 1000 есть бесконечно большое количество страниц, зак которое мы не должны выходить
url = "http://profismart.ru/web/bookreader-%s-%s.php" % (BOOK_ID,i)
g.go(url)
print i
if i == 1 or g.response.url == url:
title = g.xpath_text("//h1")
paragraphs.extend(g.xpath_list('//div[./text()]'))
else:
break
# Записываем в файл
with codecs.open("output.html",'w','utf8') as f:
book_text = u"\r\n".join(html.tostring(p,encoding=unicode) for p in paragraphs)
f.write("""
<!DOCTYPE html>
<html>
<head>
<title>%s</title>
<meta charset="utf-8">
</head>
<body>
<h1>%s</h1>
%s
</body>
</html>
""" % (title,title,book_text))
Мини web-краулер. Качаем книгу из интернета