- 1
- 2
- 3
- 4
# ....цикл....
massiv['Текст статьи'].append(BeautifulSoup(urllib.request.urlopen(link).read()).select('.news-detail'))
# ....цикл....
return massiv
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−92
# ....цикл....
massiv['Текст статьи'].append(BeautifulSoup(urllib.request.urlopen(link).read()).select('.news-detail'))
# ....цикл....
return massiv
Взято отсюда https://plus.google.com/u/0/109791202896921426720/posts/JagdUYx2d67
Vindicar 08.08.2013 17:28 # +1
anonimb84a2f6fd141 08.08.2013 18:01 # 0
Vindicar 09.08.2013 18:48 # +1
anonimb84a2f6fd141 09.08.2013 19:08 # 0
Vindicar 10.08.2013 13:28 # 0
anonimb84a2f6fd141 10.08.2013 19:00 # 0
Может, в этом проблема? Я его пробовал году так в 2010.
Методом тыка было определено, что он не переваривал одинарные кавычки.
Stallman 08.08.2013 21:09 # +2
А вот за такое надо сразу убивать.
Vindicar 10.08.2013 13:34 # 0
1. супу можно задать фильтр для элементов, которые вообще стоит записывать в дерево. Фильтр, конечно, более убогий чем механизмы выборки из готового дерева, но всё равно помогает. Мне пригодилось, когда нужно было выдрать одинокий script без src из страницы.
2. Во умолчанию текстовые элементы, возвращаемые супом - не строки, а узлы, которые помнят свои родительские элементы. Так что после выполнения этой строчки всё разобранное дерево документа останется в памяти.
anonimb84a2f6fd141 10.08.2013 19:02 # 0
2. Там не слабые ссылки? Пичально. Не знаю, как в lxml.
Vindicar 11.08.2013 13:48 # 0
2. Нет, не слабые. И по-моему это так и задумано, иначе нельзя будет гарантированно ходить по DOM-дереву, имея ссылку на узел из него. Если очень надо, есть метод для выдирания узла с потомками из контекста дерева, хотя в данном случае можно и проще.
anonimb84a2f6fd141 11.08.2013 15:42 # 0
2. Может привести к пичальке, когда ты открываешь кучу документов и сохраняешь из каждого кусочек дерева в надежне, что остальное будет убито - авотхер. lxml тоже имеет метод getroottree()
В инете рекомендуют deepcopy(), но если оно сохранит ссылки на ненужные элементы дерева, я не вижу, чем это должно помочь.
anonimb84a2f6fd141 11.08.2013 16:27 # 0
Vindicar 12.08.2013 10:04 # 0
Ну тащем-то это описано, но кто же в наши дни читает документацию? Если не заработает, спрошу на stackoverflow.
anonimb84a2f6fd141 12.08.2013 18:30 # 0
Я lxml имел в виду, на супе похожая проблема?
Vindicar 13.08.2013 08:02 # 0
anonimb84a2f6fd141 11.08.2013 16:28 # 0
anonimb84a2f6fd141 11.08.2013 16:45 # 0
Vindicar 12.08.2013 10:35 # 0
Удалили в версии для третьего питона хоть, или посредине ветки снесли?
anonimb84a2f6fd141 12.08.2013 18:32 # 0
Vindicar 13.08.2013 08:05 # 0
3.14159265 13.08.2013 16:14 # 0
Боюсь подумать если б на пхп написали...
anonimb84a2f6fd141 13.08.2013 17:02 # 0
Вот какая моча бьет в голову даже авторам довольно серьезных расширений.