Парсинг форума через BeautifulSoup - Python

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

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

Самостоятельно занимаюсь изучением языка Python. Решил написать примитивный парсер сайта, используя библиотеку BeautifulSoup это код из видеоурока, чуть чуть подправил его под другой сайт. Хочу получить название игр с 4pda.ru/forum/index.php?showforum=519
Листинг программы
  1. import urllib.request
  2. from bs4 import BeautifulSoup
  3. def get_html(url):
  4. responce = urllib.request.urlopen(url)
  5. return responce.read()
  6. def parse(html):
  7. soup = BeautifulSoup(html, 'html.parser')
  8. table = soup.find('table', cellspacing="1", class_='ipbtable')
  9. for row in table.find_all('tr')[6:]:
  10. cols = row.find_all('td')[2:]
  11. print(cols)
  12. def main():
  13. parse(get_html('http://4pda.ru/forum/index.php?showforum=519'))
  14. if __name__ == '__main__':
  15. main()
По итогу получаю: ~30 строк, в которых есть название игр.
Листинг программы
  1. [<td class="row2" onmousemove="info_mm(this);" onmouseout="info_mo(this);" valign="middle"><div style="float:right"></div><div><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;view=getnewpost"><img alt="&gt;N" border="0" hspace="2" src="//s.4pda.to/gGBEYtjeU3NJBDvFsPce8tenuGB4DxNVAWqb6fSJ2Y.gif" title="Перейти к первому непрочитанному"/></a> <a href="#" onclick="PopUp('//4pda.ru/forum/index.php?act=attach&amp;code=showtopic&amp;tid=507234', 'Attach507234', 500,400); return false;" title="Прикрепленные файлы: 1529"><img alt="@" border="0" src="//s.4pda.to/gGBEupz15BoJekVtl0u8qSuLsRvJRP35z27AiLxRUabz2Rz2i9.gif"/></a><span id="tid-span-507234"><a href="//4pda.ru/forum/index.php?showtopic=507234" id="tid-link-507234" title="Тема создана 10.10.13, 21:25">Shadow Fight 2</a></span> *<a href="javascript

    :multi_page_jump('//4pda.ru/forum/index.php?showtopic=507234', 13974, 20 );" title="Переход по страницам"><img alt="*" border="0" src="//s.4pda.to/gGBEupz15Bke70wP9iUtKCGHSwADedWpe3WD6r0aD23z0WSH.gif"/></a> <span class="minipagelink"><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;st=0">1</a></span><span class="minipagelink"><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;st=20">2</a></span><span class="minipagelink"><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;st=40">3</a></span><span class="minipagelinklast"><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;st=13960">» 699</a></span><div class="desc"><span id="tid-desc-507234" onclick="return span_desc_to_input('507234');">[Экшн] файтинг от Nekki</span><span class="forumdesc"><i><br/>Куратор темы: <a href="//4pda.ru/forum/index.php?showuser=5767489">IlyaZelek</a></i></span></div></div></td>, <td align="center" class="row1"><a href="javascript

    :who_posted(507234);">13973</a></td>, <td align="center" class="row1"><a href="//4pda.ru/forum/index.php?showuser=669942">Alien Shooter</a></td>, <td align="center" class="row1">3975197</td>, <td class="row1"><span class="lastaction">Вчера, 19:26<br/><a href="//4pda.ru/forum/index.php?showtopic=507234&amp;view=getlastpost">Послед.:</a> <b><a href="///4pda.ru/forum/index.php?showuser=5328379">CJ888</a></b></span></td>]
Как мне очистить остальное? у меня постоянно выскакивает ошибка : Traceback (most recent call last):

Решение задачи: «Парсинг форума через BeautifulSoup - Python»

textual
Листинг программы
  1. cols = row.find_all('td', class_='row2')
  2. for col in cols:
  3.     spans = col.find_all('span')
  4.     for span in spans:
  5.         if span.has_attr('id'):
  6.             print(span.text)

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


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

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

13   голосов , оценка 4.231 из 5

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

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

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