Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2014 17:45:26

python.alex
Зарегистрирован: 2014-10-27
Сообщения: 60
Репутация: +  -4  -
Профиль   Отправить e-mail  

Конкатенация строк

from bs4 import BeautifulSoup
from urllib import request

a = request.urlopen('http://www.betexplorer.com/soccer/finland/veikkausliiga/results/').read()

soup = BeautifulSoup(a)

outfile = open('C:\\Documents and Settings\\Алекс\\Рабочий стол\\a.txt', ‘w’)

body = soup.findAll('td', ‘first-cell tl’) + soup.findAll('td', ‘result’) + soup.findAll('td', ‘last-cell nobr date’)

for i in body:
outfile.write(str(i.text + ‘\n’))

print(outfile)

outfile.close()

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

Отредактировано python.alex (Окт. 27, 2014 17:46:43)

Офлайн

#2 Окт. 27, 2014 17:55:10

python.alex
Зарегистрирован: 2014-10-27
Сообщения: 60
Репутация: +  -4  -
Профиль   Отправить e-mail  

Конкатенация строк

Python является простым (с) некто с 100 летним опытом работы

Офлайн

#3 Окт. 27, 2014 22:26:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Конкатенация строк

python.alex
у меня просто список есть огромный с 3 видами данных
Его надо сначала разделить, а потом применить zip к частям. А разделять его надо потому, что ты получил его слитным изначально.

Когда у тебя будет три раздельных списка, тогда сможешь применить к ним zip:
>>> a = ('a1', 'a2', 'a3')
>>> b = ('b1', 'b2', 'b3')
>>> c = ('c1', 'c2', 'c3')
>>> 
>>> abc = (a, b, c)
>>> 
>>> lst = list(map(' '.join, zip(*abc)))
>>> lst
['a1 b1 c1', 'a2 b2 c2', 'a3 b3 c3']
>>>

python.alex
в экселе было бы все проще в 100 раз. странный этот питон. докуя сложный, мутный.
Ну, подключись через Excel к сайту какому-нибудь и выбери оттуда нужное содержимое.

Да и в аналогичных операциях питон гибче:
>>> ('x' * 5).join('a' * 3)
'axxxxxaxxxxxa'
>>>



Отредактировано py.user.next (Окт. 27, 2014 22:39:11)

Офлайн

#4 Окт. 28, 2014 04:01:08

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Конкатенация строк

python.alex
Это получилось потому что я не вкуриваю как в супебьютифульном скачивать сразу несколько классов, через findAll. Приходится втыкать нечто вроде
body = zip(soup.findAll(td, first-cell tl), soup.findAll(td, result), soup.findAll(td, last-cell nobr date))
with open("outfile.txt", "wt", encoding("utf-8")) as fp:
    for line in body:
        print(" ".join(line), file=fp)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version