С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
1

Сохранить видимый текст страницы используя Scrapy

12.02.2016, 17:56. Просмотров 496. Ответов 3

Задание у меня такое, мне необходимо со случайного сайта сохранить видимый текст. Причём с шести различных страниц находящимися в пределах заданного домена.
Вот что у меня полцчилось:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# -*- encoding: utf-8 -*-
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.loader.processor import TakeFirst
from scrapy.contrib.loader import XPathItemLoader
from scrapy.selector import HtmlXPathSelector
from scrapy import signals
from scrapy.exporters import XmlItemExporter
import io,os,re
 
globalvar = 0
global site
class MyLoader(XPathItemLoader):
default_output_processor = TakeFirst() 
 
class MySpider(CrawlSpider):
    site = "en.wikipedia.org"
    allowed_domains = [site]
    start_urls = ["http://"+site]
    rules = [Rule(SgmlLinkExtractor(), callback='parse_item', follow=True)]
    name = "myspider"
    site = site.replace('.','_')
    os.mkdir(site)
    os.chdir(site)
    while globalvar < 6:
        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            global globalvar
            site = hxs.select("//body")
            f1 = open("{}.txt".format(globalvar),'wb')
            plain_text= ''.join(site.select("//body//text()").extract()).strip()
            plain_text = re.sub(r'\s+', ' ', plain_text)
            f1.write(plain_text.encode('utf8'))
            globalvar = globalvar +1
Пока я не добавил правило, всё работало нормлаьно (правда сохранялась только одна страница, но это и так понятно).
И после того как начал использовать правило, консолька стала зависать вот так:
Сохранить видимый текст страницы используя Scrapy

Что делать?
Как сохранить страницы, может нужно другое правило?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2016, 17:56
Ответы с готовыми решениями:

Парсинг на scrapy
Добрый день. проблема распарсить сайт на питоне с помощью фреймворка Scrapy....

Содержимое каждой страницы распарсить с помощью BeautifulSoup и сохранить всё в файл
Добрый день! Пытаюсь парсить сайт, на котором информация выводится по 30...

Как сохранить обработанный текст в один файл?
Здравствуйте,проблема у меня такая.Собрал программу из кусочков кода,но вышло...

Считать текст из html-страницы
Нужна помощь, есть html-страница в ней есть текст, его нужно считать. Как это...

Вытянуть текст с html-страницы
Вопрос такой: я считал с html-страницы при помощи BeautifulSoup определенные...

3
Jabbson
Эксперт по компьютерным сетям
3353 / 2427 / 748
Регистрация: 03.11.2009
Сообщений: 7,759
Записей в блоге: 3
12.02.2016, 18:20 2
contrib уберите, чтобы ошибки исчезли, там же написано - имя упразднено, используйте без 'contrib'
0
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
12.02.2016, 20:17  [ТС] 3
Цитата Сообщение от Jabbson Посмотреть сообщение
чтобы ошибки исчезли
Теперь вот так:
Сохранить видимый текст страницы используя Scrapy

А если, как советуется, заменить sgml на 'LinkExtractor', то появляется ошибка:
No module named 'LinkExtractor'
0
Difaust
111 / 88 / 66
Регистрация: 27.04.2014
Сообщений: 297
14.02.2016, 12:43  [ТС] 4
Jabbson, c зависанием программы разобрался, цикл while нужно перенести внутрь метода parse().
Но сохраняется только одна страница, 6 раз..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2016, 12:43

Как сохранить текст при обновлении страницы html?
как сохранить текст при обновление страницы html? вот код: &lt;div...

Как сохранить текст из textBox в txt файл используя SaveFileDialog
Как сохранить текст из textBox в txt файл используя SaveFileDialog?

Получить видимый текст в (rich)textBox
не нашел, как узнать видимый текст в textBox или хотя бы первую видимую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru