воскресенье, 10 февраля 2008 г.

Читаем из интернета веб-страницу, затем сохраняем ее и текст из нее

Скрипт еще не до конца закончен, немного не корректно удаляет лишнее из страницы (остается не только текст, но и немного мусора).

# -*- coding: cp1251 -*-

# читаем из интернета веб-страницу, адрес которой передается
# в качестве первого параметра при запуске скрипта
# на выходе получаем три файла:
# page.html - файл в который пишется веб-страница как она есть
# text.txt - файл в который пишется текст с веб-страницы (без тегов)
# clear-text.txt - как и предыдущий файл, но без пустых строк

import urllib, re, string, sys

url2 = sys.argv[1]
url = "http://" + url2
filename = "page.html" # имя файла в который пишется веб-страница
filename2 = "text.txt" # имя файла в который пишется текст с веб-страницы
filename3 = "clear-text.txt" # текст без пустых строк

f1 = urllib.urlopen(url)
f2 = open(filename, "w")
for line in f1.readlines():
    f2.write(line)
f2.close()
f1.close()
# файл прочитали и записали
print "файл прочитали и записали"

f=open(filename, 'r+')
s = f.read()
f.close()
s2 = re.sub('<.*?>', '', s)
s3 = re.sub('"', '', s2)
s4 = re.sub(' ', ' ', s3)
s5 = re.sub('—', '-', s4)
# убрали все теги
print "убрали все теги"

f3=open(filename2, "w")
f3.write(s5)
f3.close()
# записали без тегов
print "записали без тегов"

f1 = open(filename2, "r")
f2 = open(filename3, "w")
for line in f1.readlines():
    if (re.search('\w', line)):
        f2.write(line)
f2.close()
# удалили все пустые строки
print "удалили все пустые строки"

Комментариев нет: