Ошибка BeautifulSoup при доступе к тд внутри тр - PullRequest
0 голосов
/ 19 февраля 2020

это HTML, к которому я пытаюсь получить доступ, но я не могу получить доступ ко второму td внутри tr.

Ниже приведен исходный код HTML:

<tbody>
	<!-- ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" style="" title="View Details">
		<td class="ng-binding">22184</td>
		<td class="ng-binding">Abercrombie, Dave J.</td>
		<td class="ng-binding">Feb 14, 2020</td>
		<td align="right" class="ng-binding">F0517CC - Fld 05 West Section C</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">14075</td>
		<td class="ng-binding">Abeyta, Patricia F.</td>
		<td class="ng-binding">Feb 28, 2018</td>
		<td align="right" class="ng-binding">F1228 - JMC Packing House Plantation Management</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">43296</td>
		<td class="ng-binding">Acevedo, Patricia W.</td>
		<td class="ng-binding">Jun 23, 2017</td>
		<td align="right" class="ng-binding">F0517CC - Fld 05 West Section C</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">45023</td>
		<td class="ng-binding">Ackerman, Brittany B.</td>
		<td class="ng-binding">Nov 7, 2017</td>
		<td align="right" class="ng-binding">DL-50 - DL-50</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">11032</td>
		<td class="ng-binding">Acosta, Ronald G.</td>
		<td class="ng-binding">Jan 16, 1992</td>
		<td align="right" class="ng-binding">DL-42 - DL-42</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">72974</td>
		<td class="ng-binding">Acton, Leslie F.</td>
		<td class="ng-binding">Sep 1, 2011</td>
		<td align="right" class="ng-binding">F0518CB - Fld 5 East Sec B</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">71894</td>
		<td class="ng-binding">Adams, Frances G.</td>
		<td class="ng-binding">Apr 2, 2018</td>
		<td align="right" class="ng-binding">F1007 - Spray Department</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">32997</td>
		<td class="ng-binding">Adams, Susan M.</td>
		<td class="ng-binding">Aug 31, 2018</td>
		<td align="right" class="ng-binding">F1062 - Corp S16 Planation Management Hourlies</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">10990</td>
		<td class="ng-binding">Adams, Michael B.</td>
		<td class="ng-binding">Aug 30, 2018</td>
		<td align="right" class="ng-binding">DL-04 - DL-04</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
	<tr class="hand_cursor ng-scope" ng-click="create_dialog(record)" ng-repeat="record in records | orderBy: query.fullname" title="View Details">
		<td class="ng-binding">79358</td>
		<td class="ng-binding">Adams, Lisa B.</td>
		<td class="ng-binding">Apr 30, 2019</td>
		<td align="right" class="ng-binding">C1155 - C1155</td>
	</tr>
	<!-- end ngRepeat: record in records | orderBy: query.fullname -->
</tbody>

А вот и мой код:

steven=soup.find("table",{"class":"table sticky-table-header table-hover ng-isolate-scope resize"})
        for row in steven.tbody.find_all('tr'):
            print(row.td.text)

1 Ответ

0 голосов
/ 19 февраля 2020

Проблема, которую вы ищете с неправильными атрибутами, которая на самом деле вообще отсутствует в исходном коде.

Ниже вы можете достичь своей цели:

soup = BeautifulSoup(html, 'html.parser')

count = 0
for item in soup.findAll("tr", {"class": "hand_cursor ng-scope"}):
    for td in item.findAll("td")[1]:
        count += 1
        print(td)
print(f"Count is: {count}")

Вывод:

Abercrombie, Dave J.
Abeyta, Patricia F.
Acevedo, Patricia W.
Ackerman, Brittany B.
Acosta, Ronald G.
Acton, Leslie F.
Adams, Frances G.
Adams, Susan M.
Adams, Michael B.
Adams, Lisa B.
Count is: 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...