Парсинг форума через BeautifulSoup - Python
Формулировка задачи:
Самостоятельно занимаюсь изучением языка Python.
Решил написать примитивный парсер сайта, используя библиотеку BeautifulSoup это код из видеоурока, чуть чуть подправил его под другой сайт.
Хочу получить название игр с 4pda.ru/forum/index.php?showforum=519
По итогу получаю:
~30 строк, в которых есть название игр.
Как мне очистить остальное? у меня постоянно выскакивает ошибка : Traceback (most recent call last):
Листинг программы
- import urllib.request
- from bs4 import BeautifulSoup
- def get_html(url):
- responce = urllib.request.urlopen(url)
- return responce.read()
- def parse(html):
- soup = BeautifulSoup(html, 'html.parser')
- table = soup.find('table', cellspacing="1", class_='ipbtable')
- for row in table.find_all('tr')[6:]:
- cols = row.find_all('td')[2:]
- print(cols)
- def main():
- parse(get_html('http://4pda.ru/forum/index.php?showforum=519'))
- if __name__ == '__main__':
- main()
Листинг программы
- [<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&view=getnewpost"><img alt=">N" border="0" hspace="2" src="//s.4pda.to/gGBEYtjeU3NJBDvFsPce8tenuGB4DxNVAWqb6fSJ2Y.gif" title="Перейти к первому непрочитанному"/></a> <a href="#" onclick="PopUp('//4pda.ru/forum/index.php?act=attach&code=showtopic&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&st=0">1</a></span><span class="minipagelink"><a href="//4pda.ru/forum/index.php?showtopic=507234&st=20">2</a></span><span class="minipagelink"><a href="//4pda.ru/forum/index.php?showtopic=507234&st=40">3</a></span><span class="minipagelinklast"><a href="//4pda.ru/forum/index.php?showtopic=507234&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&view=getlastpost">Послед.:</a> <b><a href="///4pda.ru/forum/index.php?showuser=5328379">CJ888</a></b></span></td>]
Решение задачи: «Парсинг форума через BeautifulSoup - Python»
textual
Листинг программы
- cols = row.find_all('td', class_='row2')
- for col in cols:
- spans = col.find_all('span')
- for span in spans:
- if span.has_attr('id'):
- print(span.text)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д