Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import mechanize
from bs4 import BeautifulSoup
URL_00 = "http://www.amazon.co.uk/Call-Duty-Black-Ops-PS3/dp/B007WPF7FE/ref=sr_1_2?ie=UTF8&qid=1352117194&sr=8-2"
bro = mechanize.Browser()
resp = bro.open(URL_00)
html = resp.get_data()
soup_00 = BeautifulSoup(html)
price = soup_00.find('b', {'class':'priceLarge'})
print price #this should return at the very least the text enclosed in a tag

Ну все, что я получаю в распечатке, это "[]", если я изменю предпоследнюю строку на эту:
Код: Выделить всё
price = soup_00.find('b', {'class':'priceLarge'}).contents[0].string
Код: Выделить всё
price = soup_00.find('b', {'class':'priceLarge'}).text
Я совершенно не понимаю, почему это происходит. Кодировка страницы в URL-адресе Chrome указывает UTF8, для которой мой скрипт настроен в строке № 2.
Я изменил ее на ISO (согласно внутреннему HTML-коду страницы), но это не имеет никакого значения, поэтому я положительная кодировка здесь не проблема.
Кроме того, не знаю, актуально ли это вообще, но моя системная локаль в Linux - UTF-8, не должна вызывать проблем, не так ли?
Подробнее здесь: https://stackoverflow.com/questions/132 ... azon-co-uk
Мобильная версия