используя вывод из Beautifulsoup в Python - PullRequest
3 голосов
/ 17 апреля 2011

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

У меня есть эта таблица, в результате которой я хочу получить строковое содержимое всех тегов, которые я делаю так:

from BeautifulSoup import *
from urllib import urlopen

def parseWithSoup(url):
    print "Reading:" , url
    html = urlopen(url).read().lower()
    bs = BeautifulSoup(html)
    table = bs.find(lambda tag: tag.name=='table' and tag.has_key('id') and tag['id']=="tblt_table") 
    rows = table.findAll(lambda tag: tag.name=='tr')

    rows.pop(0) #first row is header
    for row in rows:
        tags = row.findAll(lambda tag: tag.name=='a')
        content = []
        for tagcontent in tags:
            content.append(tagcontent.string)
        print content

if __name__ == '__main__':
    content = "http://www.teamliquid.net/tlpd/sc2-international/games#tblt-5018-1-1-DESC"
    metSoup = parseWithSoup(content)

однако вывод выглядит следующим образом:

[u'+', u'gadget show live i..', u'crevasse', u'naniwa', u'socke']
[u'+', u'gadget show live i..', u'metalopolis 1.1', u'naniwa', u'socke']
[u'+', u'gadget show live i..', u'shakuras plateau 2.0', u'socke', u'select']
etc...

Мой вопрос: откуда взялась буква "u" (из юникода?) И как я могу это убрать? Мне просто нужны строки, которые в тебе '...

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

u означает строку Unicode.Это ничего не меняет для вас как для программиста, и вы должны просто игнорировать это.Относитесь к ним как к нормальным строкам.Тебе это действительно нужно.

Имейте в виду, что все выходные данные Beautiful Soup в формате Unicode.Это хорошо, потому что если вы столкнетесь с какими-либо символами Юникода в скрепе, у вас не возникнет никаких проблем.Если вы действительно хотите избавиться от u, (я не рекомендую это), вы можете использовать метод decode() строки Unicode.

0 голосов
/ 17 апреля 2011

То, что вы видите, - это строки Unicode Python.

Проверьте документацию Python

http://docs.python.org/howto/unicode.html

, чтобы правильно обрабатывать строки Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...