Не получается спарсить многоуровневое меню - Python

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток господа! Уже пару дней бьюсь и не могу написать одну из частей парсера, а точнее сбор ссылок из меню на сайте, структуру приложу ниже. Проблема в том что в списках есть ссылки на подсписки и сами подсписки, и в этих подсписках всё может повторятся. Ссылки нужно получить только из крайних подсписков, иначе если перейти по ссылке которая рядом с её подсписком то на этой странице будут все товары, а потом мы идём по ссылкам в подсписке а там эти же товары только разибитые по категориям - страницам, и того у нас в массиве уже дублируются все товары 2 раза, а страниц то много, и дубляжей получается ещё больше. Вот, как-то так, надеюсь что смог понятно объяснить что же мне надо, у самого меня пока что не чего не получается так как я только начал учить Python!
Листинг программы
  1. <nav class="categories">
  2. <ul>
  3. <li class="expanded "><a href="/catalog/transport_i_vnedorozhnaya_tekhnika/?list=yes">Транспорт и внедорожная техника</a>
  4. <ul>
  5. <li class="expanded "><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_motornye_masla/">Моторные масла</a>
  6. <ul>
  7. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_motornye_masla_dlya_legkovykh_avtomobiley/">Для легковых автомобилей</a>
  8. </li>
  9. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_motornye_masla_dlya_gruzovykh_avtomobiley/">Для грузовых автомобилей</a>
  10. </li>
  11. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_motornye_masla_dlya_dvigateley_rabotayushchikh_na_gazoobraznom_toplive/">Для двигателей, работающих на газообразном топливе</a>
  12. </li>
  13. </ul>
  14. </li>
  15. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_universalnye_traktornye_masla/">Универсальные тракторные масла</a>
  16. </li>
  17. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_transmissionnye_masla/">Трансмиссионные масла</a>
  18. </li>
  19. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_zhidkosti_dlya_akpp/">Жидкости для АКПП</a>
  20. </li>
  21. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_zhidkosti_dlya_gur_i_gidrosistem/">Жидкости для ГУР и гидросистем</a>
  22. </li>
  23. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_avtomobilnye_plastichnye_smazki_i_pasty/">Автомобильные пластичные смазки и пасты</a>
  24. </li>
  25. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_antifrizy/">Антифризы</a>
  26. </li>
  27. <li><a href="/catalog/transport_i_vnedorozhnaya_tekhnika_servisnye_produkty/">Сервисные продукты</a>
  28. </li>
  29. </ul>
  30. </li>
  31. <li class="expanded "><a href="/catalog/industrialnye_smazochnye_materialy/?list=yes">Индустриальные смазочные материалы</a>
  32. <ul>
  33. <li><a href="/catalog/industrialnye_smazochnye_materialy_mashinnye_masla_obshchego_naznacheniya/">Машинные масла общего назначения</a>
  34. </li>
  35. <li class="expanded "><a href="/catalog/industrialnye_smazochnye_materialy_gidravlicheskie_zhidkosti/">Гидравлические жидкости</a>
  36. <ul>
  37. <li><a href="/catalog/industrialnye_smazochnye_materialy_gidravlicheskie_zhidkosti_na_mineralnoy_osnove_soderzhat_zn/">На минеральной основе, содержат Zn</a>
  38. </li>
  39. <li><a href="/catalog/industrialnye_smazochnye_materialy_gidravlicheskie_zhidkosti_na_mineralnoy_osnove_ne_soderzhat_zn/">На минеральной основе, не содержат Zn</a>
  40. </li>
  41. <li><a href="/catalog/industrialnye_smazochnye_materialy_gidravlicheskie_zhidkosti_na_sinteticheskoy_osnove/">На синтетической основе</a>
  42. </li>
  43. <li><a href="/catalog/industrialnye_smazochnye_materialy_gidravlicheskie_zhidkosti_ognestoykie/">Огнестойкие</a>
  44. </li>
  45. </ul>
  46. </li>
  47. <li class="expanded "><a href="/catalog/industrialnye_smazochnye_materialy_reduktornye_masla/">Редукторные масла</a>
  48. <ul>
  49. <li><a href="/catalog/industrialnye_smazochnye_materialy_reduktornye_masla_na_mineralnoy_osnove/">На минеральной основе</a>
  50. </li>
  51. <li><a href="/catalog/industrialnye_smazochnye_materialy_reduktornye_masla_na_sinteticheskoy_osnove/">На синтетической основе</a>
  52. </li>
  53. </ul>
  54. </li>
  55. <li><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_napravlyayushchikh_tsepey_i_pnevmoinstrumenta/">Масла для направляющих, цепей и пневмоинструмента</a>
  56. </li>
  57. <li class="expanded "><a href="/catalog/industrialnye_smazochnye_materialy_kompressornye_masla/">Компрессорные масла</a>
  58. <ul>
  59. <li><a href="/catalog/industrialnye_smazochnye_materialy_kompressornye_masla_na_mineralnoy_osnove/">На минеральной основе</a>
  60. </li>
  61. <li><a href="/catalog/industrialnye_smazochnye_materialy_kompressornye_masla_na_sinteticheskoy_osnove/">На синтетической основе</a>
  62. </li>
  63. </ul>
  64. </li>
  65. <li class="expanded "><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_kompressorov_kholodilnogo_oborudovaniya/">Масла для компрессоров холодильного оборудования</a>
  66. <ul>
  67. <li><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_kompressorov_kholodilnogo_oborudovaniya_na_mineralnoy_osnove/">На минеральной основе</a>
  68. </li>
  69. <li><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_kompressorov_kholodilnogo_oborudovaniya_polusinteticheskie/">Полусинтетические</a>
  70. </li>
  71. <li><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_kompressorov_kholodilnogo_oborudovaniya_na_sinteticheskoy_osnove/">На синтетической основе</a>
  72. </li>
  73. </ul>
  74. </li>
  75. <li><a href="/catalog/industrialnye_smazochnye_materialy_turbinnye_masla/">Турбинные масла</a>
  76. </li>
  77. <li><a href="/catalog/industrialnye_smazochnye_materialy_masla_dlya_tekstilnykh_mashin/">Масла для текстильных машин</a>
  78. </li>
  79. <li><a href="/catalog/industrialnye_smazochnye_materialy_belye_masla/">Белые масла</a>
  80. </li>
  81. <li><a href="/catalog/masla_teplonositeli/">Масла-теплоносители</a>
  82. </li>
  83. <li><a href="/catalog/industrialnye_smazochnye_materialy_elektroizolyatsionnye_masla/">Электроизоляционные масла</a>
  84. </li>
  85. <li><a href="/catalog/industrialnye_smazochnye_materialy_tsilindrovye_masla/">Цилиндровые масла</a>
  86. </li>
  87. </ul>
  88. </li>
  89. <li class="expanded "><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti/?list=yes">Смазочно-охлаждающие жидкости (СОЖ)</a>
  90. <ul>
  91. <li class="expanded "><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem/">Для обработки металлов резанием</a>
  92. <ul>
  93. <li class="expanded "><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye/">Водосмешиваемые</a>
  94. <ul>
  95. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye_universalnogo_primeneniya/">Универсального применения</a>
  96. </li>
  97. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye_dlya_alyuminiya_i_vysokolegirovannykh_staley/">Для алюминия и высоколегированных сталей</a>
  98. </li>
  99. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye_dlya_magniya/">Для магния</a>
  100. </li>
  101. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye_dlya_tsvetnykh_metallov/">Для цветных металлов</a>
  102. </li>
  103. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_vodosmeshivaemye_sinteticheskie_zhidkosti_dlya_shlifovaniya/">Синтетические жидкости для шлифования</a>
  104. </li>
  105. </ul>
  106. </li>
  107. <li class="expanded "><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_nevodosmeshivaemye/">Неводосмешиваемые</a>
  108. <ul>
  109. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_nevodosmeshivaemye_universalnogo_primeneniya/">Универсального применения</a>
  110. </li>
  111. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_rezaniem_nevodosmeshivaemye_zhidkosti_dlya_elektroerozionnoy_obrabotki/">Жидкости для электроэрозионной обработки</a>
  112. </li>
  113. </ul>
  114. </li>
  115. </ul>
  116. </li>
  117. <li class="expanded "><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_davleniem_nevodosmeshivaemye/">Для обработки металлов давлением</a>
  118. <ul>
  119. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_davleniem_vodosmeshivaemye/">Водосмешиваемые</a>
  120. </li>
  121. <li><a href="/catalog/vodosmeshivaemye_universalnogo_primeneniya_universalnogo_primeneniya_vodosmeshivaemye_nevodosmeshivaemye/">Неводосмешиваемые</a>
  122. </li>
  123. <li><a href="/catalog/smazochno_okhlazhdayushchie_zhidkosti_dlya_obrabotki_metallov_davleniem_tverdye/">Твердые</a>
  124. </li>
  125. </ul>
  126. </li>
  127. <li class="expanded "><a href="/catalog/razdelitelnie_sostavi_dla_proseccov_obrabotki_metallov_davleniem/">Разделительные составы для процессов горячей обработки металлов давлением</a>
  128. <ul>
  129. <li><a href="/catalog/razdelitelnie_sostavi_dla_proseccov_obrabotki_metallov_davleniem_vodosmeshivaemie_grafit/">Водосмешиваемые графитосодержащие составы для горячей штамповки</a>
  130. </li>
  131. <li><a href="/catalog/razdelitelnie_sostavi_dla_proseccov_obrabotki_metallov_davleniem_nevodosmeshivaemie_grafit/">Неводосмешиваемые графитосодержащие составы для горячей штамповки</a>
  132. </li>
  133. <li><a href="/catalog/razdelitelnie_sostavi_dla_proseccov_obrabotki_metallov_davleniem_vodosmeshivaemie_nongrafit/">Водосмешиваемые безграфитовые составы для горячей штамповки</a>
  134. </li>
  135. <li><a href="/catalog/razdelitelnie_sostavi_dla_proseccov_obrabotki_metallov_davleniem_litie/">Разделительные составы для литья под давлением</a>
  136. </li>
  137. </ul>
  138. </li>
  139. <li><a href="/catalog/sredstva_po_uhodu_za_smazochno_ohlazhdayuschimi_zhidkostyami/">Средства по уходу за СОЖ</a>
  140. </li>
  141. </ul>
  142. </li>
  143. <li class="expanded "><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_dlya_obrabotki_metallov_davleniem/?list=yes">Очистители и антикоррозионные составы</a>
  144. <ul>
  145. <li class="expanded "><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_ochistiteli/">Очистители</a>
  146. <ul>
  147. <li class="expanded "><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_ochistiteli_vodosmeshivaemye/">Водосмешиваемые</a>
  148. <ul>
  149. <li><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_ochistiteli_vodosmeshivaemye_dlya_ispolzovaniya_v_pogruzhnykh_vannakh/">Для использования в погружных ваннах</a>
  150. </li>
  151. <li><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_ochistiteli_vodosmeshivaemye_dlya_ispolzovaniya_v_moyushchikh_apparatakh/">Для использования в моющих аппаратах</a>
  152. </li>
  153. </ul>
  154. </li>
  155. <li><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_ochistiteli_nevodosmeshivaemye_na_osnove_rastvoriteley/">Неводосмешиваемые (на основе растворителей)</a>
  156. </li>
  157. </ul>
  158. </li>
  159. <li class="expanded "><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_antikorrozionnye_sostavy/">Антикоррозионные составы</a>
  160. <ul>
  161. <li><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_antikorrozionnye_sostavy_vodosmeshivaemye/">Водосмешиваемые</a>
  162. </li>
  163. <li><a href="/catalog/ochistiteli_i_antikorrozionnye_sostavy_antikorrozionnye_sostavy_maslyanye_i_voskovye/">Масляные и восковые</a>
  164. </li>
  165. </ul>
  166. </li>
  167. </ul>
  168. </li>
  169. <li class="expanded "><a href="/catalog/industrialnye_plastichnye_smazki_antikorrozionnye_sostavy/?list=yes">Пластичные смазки и пасты</a>
  170. <ul>
  171. <li><a href="/catalog/industrialnye_plastichnye_smazki_smazki_obshchego_naznacheniya_do_120/">Смазки общего назначения, до 120в„ѓ</a>
  172. </li>
  173. <li><a href="/catalog/industrialnye_plastichnye_smazki_smazki_dlya_temperatur_gt_120_i_vysokikh_nagruzok/">Смазки для температур &gt;120в„ѓ и высоких нагрузок</a>
  174. </li>
  175. <li><a href="/catalog/industrialnye_plastichnye_smazki_smazki_s_tverdymi_napolnitelyami/">Смазки с твердыми наполнителями</a>
  176. </li>
  177. <li><a href="/catalog/industrialnye_plastichnye_smazki_poluzhidkie_smazki_dlya_tsentralizovannykh_sistem_podachi_i_reduktorov/">Полужидкие смазки для централизованных систем подачи и редукторов</a>
  178. </li>
  179. <li><a href="/catalog/industrialnye_plastichnye_smazki_spetsialnye_smazki/">Специальные смазки</a>
  180. </li>
  181. <li><a href="/catalog/smazochnye_materialy_dlya_otkrytykh_zubchatykh_peredach/">Смазочные материалы для открытых зубчатых передач</a>
  182. </li>
  183. </ul>
  184. </li>
  185. <li class="expanded "><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti/?list=yes">Пищевые смазочные материалы Cassida</a>
  186. <ul>
  187. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_masla_dlya_tsepey/">Масла для цепей CASSIDA CHAIN OIL</a>
  188. </li>
  189. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_gidravlicheskie_masla/">Гидравлические масла CASSIDA</a>
  190. </li>
  191. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_reduktornye_masla/">Редукторные масла CASSIDA</a>
  192. </li>
  193. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_kompressornye_masla/">Компрессорные масла CASSIDA</a>
  194. </li>
  195. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_masla_teplonositeli/">Масла-теплоносители CASSIDA</a>
  196. </li>
  197. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_plastichnye_smazki/">Пластичные смазки CASSIDA</a>
  198. </li>
  199. <li><a href="/catalog/smazochnye_materialy_dlya_pishchevoy_promyshlennosti_spetsialnye_zhidkosti/">Специальные жидкости CASSIDA</a>
  200. </li>
  201. </ul>
  202. </li>
  203. </ul>
  204. <!-- <input type="hidden" id="actv" value="active_1"/> -->
  205. <!-- -->
  206. </nav>

Решение задачи: «Не получается спарсить многоуровневое меню»

textual
Листинг программы
  1. s = set(el.attr('href') for el in dom.find('ul > li > ul > li > a'))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы