Я научился царапать сайты с помощью BeautifulSoup, и все идет хорошо. Заимствуя код, мне удалось очистить некоторые веб-сайты. Однако, когда я пришел на сайт ниже, я возвращаю только верхний ряд таблицы. Я заметил в html, что кодер сайта сделал строку заголовка тегом td вместо th тега, и мне было интересно, может ли это вызвать мою проблему. Если да, есть ли работа? Мне что-то не хватает? Я пробовал использовать разные парсеры.Python BeautifulSoup Returning Top Row Only
url = 'https://www.twinspires.com/php/brisstats/report.php?bris_id=4061015&report=activity'
soup = BeautifulSoup(urllib2.urlopen(url).read(), 'html5lib')
data = []
table = soup.find('table', attrs={'id':'reporttable'})
rows = table.findAll('tr')
for row in rows:
print row
cols = table.find_all('td')
cols = [ele.text.strip() for ele in cols]
data.append([ele for ele in cols if ele]) # Get rid of empty values
print data
простаивает выход для печати строк и данных отчетности
<tr>
<td class="field-title" width="15%">Activity</td>
<td class="field-title" width="10%">Date</td>
<td class="field-title" width="10%">Track</td>
<td class="field-title" width="9%">Distance</td>
<td class="field-title" width="5%">Surf</td>
<td class="field-title" width="5%">Cond</td>
<td class="field-title" width="9%">Time</td>
<td class="field-title" width="10%">Class</td>
<td class="field-title" width="5%">Fin</td>
<td class="field-title">Comment</td>
</tr>
[[u'Activity', u'Date', u'Track', u'Distance', u'Surf', u'Cond', u'Time', u'Class', u'Fin', u'Comment']]
Я предполагаю, что вы пытаетесь очистить * содержимое * таблицы? К сожалению, сама таблица, помимо строки заголовка (неправильно отмеченной), генерируется JavaScript, поэтому вам нужно будет использовать что-то вроде 'selenium' или' phantomjs' для визуализации * окончательного * HTML, прежде чем вы сможете его очистить , Вы можете просмотреть отображаемый HTML, используя инструменты разработчика вашего браузера. – MattDMo