Форум сайта python.su
0
вот код
# -*- coding: utf-8 -*-
import urllib2
import codecs
import csv
from BeautifulSoup import BeautifulSoup
import sys
streamWriter = codecs.lookup('utf-8')[-1]# это вроде как должно решить проблему по описанию в доках к BeautifulSoup
sys.stdout = streamWriter(sys.stdout)#но оно не решает
site_url = 'http://hotline.ua'
search_word = u'g900'
query_string = 'http://hotline.ua/sr/?q=%s&x=0&y=0'%search_word
page = urllib2.urlopen(query_string)
soup = BeautifulSoup(page)
search_result = soup.find("div", "t_search_results").findAll('a')
results = list()
spamWriter = csv.writer(open('c:\eggs.csv', 'w'), delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for link in search_result:
page = urllib2.urlopen("%s%s"%(site_url,link['href']))
page_soup = BeautifulSoup(page)
spec_html = page_soup.find('table','specification')
if spec_html:
print spec_html.find('th')
print spec_html.find('td')
spamWriter.writerow([spec_html.find('th'), spec_html.find('td')])
# -*- coding: utf-8 -*-
import urllib2
import codecs
import csv
from BeautifulSoup import BeautifulSoup
site_url = 'http://rozetka.com.ua/'
search_word = u'g900'
query_string = 'http://rozetka.com.ua/index.php?search_text=%s&imageField.x=0&imageField.y=0&page=search&lang=ru='%search_word
page = urllib2.urlopen(query_string)
soup = BeautifulSoup(page)
html = soup.prettify()
search_result = soup.find("div", "t_search_results").findAll('a')
results = list()
spamWriter = csv.writer(open('c:\eggs1.csv', 'w'), delimiter=' ',quotechar='|', quoting=csv.QUOTE_MINIMAL)
for link in search_result:
rtf = ("%s%s"%(site_url,link['href']))
page = urllib2.urlopen(rtf)
page_soup = BeautifulSoup(page)
spec_html = page_soup.find('table','specification')
if spec_html:
print spec_html.find('dr')
print spec_html.find('b')
spamWriter.writerow([spec_html.find('br'), spec_html.find('b')])
Отредактировано (Дек. 28, 2009 14:25:28)
Офлайн
0
BeautifulSoup на этом сайте неправильно определяет кодировку, он думает, что там windows-1252.
print soup.originalEncoding
# вывод: windows-1252
soup = BeautifulSoup(page, fromEncoding="windows-1251")
Отредактировано (Дек. 28, 2009 17:02:44)
Офлайн
0
pasaranaxк стати тут ты не прав…если повозится и проверить то сайт какраз в windows-1251, а проблема была в том что ВСЕ переменные BeautifulSoup хранятся в unicode , и для BeautifulSoup это отдельный тип(type) данных
BeautifulSoup на этом сайте неправильно определяет кодировку, он думает, что там windows-1252.
Код:
print soup.originalEncoding
# вывод: windows-1252
Тогда просто указывай ее принудительно
Код:
soup = BeautifulSoup(page, fromEncoding=“windows-1251”)
sonniyто очем я и писал
то BeautifulSoup не может прочитать переменную soup = BeautifulSoup(page)
Отредактировано (Дек. 28, 2009 23:07:43)
Офлайн
0
Доброго времени суток! специалисты по BeautifulSoup, подскажите, пожалуйста!
Есть парсер форума. В процессе получаем некий BeautifulSoup.Tag, соответствующий, допустим, тексту HTML в духе:
<div class="post"> Пацаны! <br /><br /> Я реально рад вас всех видеть! <br /> Зацените, как я играю в футбол:<br /> <a href="http://aaa.su/dex.jpg>-прикрепленное изображение-</a> </div>
Офлайн
24
>>> import bs4 >>> markup = """ ... <div class="post"> ... Пацаны! <br /><br /> ... Я реально рад вас всех видеть! <br /> ... Зацените, как я играю в футбол:<br /> ... <a href="http://aaa.su/dex.jpg>-прикрепленное изображение-</a> ... </div>""" >>> soup = bs4.BeautifulSoup(markup) >>> "".join([x.strip() if not isinstance(x, bs4.element.Tag) else str(x) for x in soup.find("div", class_="post").contents]) 'Пацаны!<br/><br/>Я реально рад вас всех видеть!<br/>Зацените, как я играю в футбол:<br/><a href="http://aaa.su/dex.jpg>-прикрепленное изображение-</a>\n</div>"></a>'
Отредактировано ayb (Дек. 6, 2015 15:31:48)
Офлайн
0
Хмм… несколько в лоб, но в любом случае спасибо.
Я думал, может, что из встроенного есть.
Офлайн
1
Ryo
Хмм… несколько в лоб, но в любом случае спасибо. Я думал, может, что из встроенного есть.
soup.div.get_text()
Офлайн
24
kampella
soup.div.get_text()
Ryo
Со всеми <br />, <a href… ссылками и прочим.
Офлайн