Форум сайта python.su
Система:
Windows XP
Python 2.7
Цель: хочу прочитать страничку с википедии и еще загрузить рисунки и все остальное для локального отображения странички.
#——Код скрипта
# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup
import re
import urllib
#-----------------------------------------------------------------------------
doc = urllib.urlopen("http://ru.wikipedia.org/wiki/Математика").read()
soup = BeautifulSoup(''.join(doc))
print soup.prettify()
Отредактировано (Сен. 19, 2010 20:29:01)
Офлайн
1. Добавьте в запрос User-Agent. Это можно сделать с помощью urllib2, например.
2. Точно так же как и хтмл
Офлайн
Спасибо, так работает, но почему то все ссылки на странице file:///wiki/имя ссылки, а как оставлять все без изменения?
# -*- coding: utf-8 -*-
import re
import urllib
import urllib2
#-----------------------------------------------------------------------------
authinfo = urllib2.HTTPBasicAuthHandler()
authinfo.add_password('', '', '', '')
# Доступ через прокси
proxy_support = urllib2.ProxyHandler()
# Создание нового открывателя с указанными обработчиками
opener = urllib2.build_opener(proxy_support,authinfo,urllib2.CacheFTPHandler)
# Установка поля с названием клиента
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
# Установка нового открывателя по умолчанию
urllib2.install_opener(opener)
# Использование открывателя
f = urllib2.urlopen('http://ru.wikipedia.org/wiki/Биология')
print f.read()
Офлайн
MaDRuSВсе верно, так и должно быть, т.к. ссылки на странице относительные. Если хотите, чтобы ссылки все-таки указывали на wiki, вам придется заменить их самостоятельно.
Спасибо, так работает, но почему то все ссылки на странице file:///wiki/имя ссылки, а как оставлять все без изменения?
Офлайн