Найти - Пользователи
Полная версия: Парсер сайта
Начало » Python для новичков » Парсер сайта
1
beginner
Всем привет!

Моя жена администрирует сайт ostanovinasilie.org. И вот, возникла нужда в получении/изъятии всех новостей (порядка 500) в один файл.

Так как я еще совсем “зеленый” по Python'y (я начал с 3-ей ветки) у меня возникли трудности по этой задаче.

Подскажите, пожалуйста, куда двигаться?

Спасибо!
alex925
Читай про методы http и как получается информация по этому протоколу, когда изучишь с помощью библиотеки requests потом с легкостью извлечёшь нужную информацию, а разбирать полученные данные будет с помощью lxml.html.
terabayt
так как сайт “во имя Добра”, решил помочь
если нужно изменить формат записи в файл или сделать чтобы записывало в doc, odt, pdf и т.д. пишите - помогу
lxml
import lxml.html
with open('posts.txt', 'a', encoding='utf-8') as f:
    for p in range(43):
        page = lxml.html.parse(r'http://ostanovinasilie.org/category/news/page/%d/' % p)
        for i in page.xpath('.//div[starts-with(@id, "post")]//a'):
            post = lxml.html.parse(i.attrib['href']).xpath('.//div[starts-with(@id, "post")]')
            f.write(post[0].text_content())
beginner
alex925
Спасибо за указанное направление! Буду осваиваться!
beginner
terabayt
Конечно, лучше бы такие сайты вообще не пользовались популярностью, но увы…

По теме: огромное Вам спасибо!
Для сохранения в .doc я просто поменял строку ‘posts.txt’ на ‘posts.doc’?! Все работает.

P.S. Я не “пиявка”, но все-таки спрошу: можете ли Вы модифицировать код, чтобы помимо текста новости, также сохранялись картинки и ссылки из новости?
terabayt
beginner
модифицировать код, чтобы помимо текста новости, также сохранялись картинки и ссылки из новости?
так как работа с doc для проблематична
import lxml.html
with open('posts.html', 'a', encoding='utf-8') as f:
    for p in range(42, 0, -1):
        page = lxml.html.parse(r'http://ostanovinasilie.org/category/news/page/%d/' % p)
        for i in page.xpath('.//div[starts-with(@id, "post")]//a'):
            post = lxml.html.parse(i.attrib['href']).xpath('.//div[starts-with(@id, "post")]')
            f.write(lxml.html.tostring(post[0], method='html').decode('utf-8'))
этот код сохраняет в html документ с картинками и ссылками
или откройте в ворде этот докмент и сохраните в формате doc, или воспользуйтесь конверторами с html в doc
P.S. если будет что-то нужно помимо этого вопроса, пишите на почту
striker88
Регулярные выражения наше всё
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB