как извлечь скрытый текст синего цвета между строками в таблице с помощью python beautifulsoup

#python-3.x #beautifulsoup

#python-3.x #beautifulsoup

Вопрос:

Попытка обхода всех скрытых комментариев в строках таблицы после строк 2 и 3, но извлечь не удается.

я попробовал приведенный ниже код для расширения этих комментариев, но не удалось. ниже приведен мой код. пожалуйста, помогите мне кто-нибудь решить эту проблему.

 from bs4 import BeautifulSoup,Comment

import requests

r =requests.get('http://www.esuppliersindia.com/krishna-agro- 
  traders/aboutus-p17322178-u10731500-swa.html')

soup = BeautifulSoup(r.text,'lxml')

table = soup.find('table',class_='text-listing')

trs = table.find_all('tr')

for tr in trs[2:3]:

   print(tr.text)

for tr in trs[3:4].find_next_sibling('td'):

   print(tr.text)
  

Комментарии:

1. Можете ли вы привести пример этого скрытого текста «синего цвета»? Вы имеете в виду зеленую закомментированную информацию?

Ответ №1:

Однако я не уверен, следите ли вы за приведенными ниже комментариями внутри таблицы.

 from bs4 import BeautifulSoup,Comment
import requests
r =requests.get('http://www.esuppliersindia.com/krishna-agro-traders/aboutus-p17322178-u10731500-swa.html')

soup = BeautifulSoup(r.text,'lxml')
table = soup.find('table',class_='text-listing')
comments=table.find_all(string=lambda text:isinstance(text,Comment))
print(comments[0].split('</tr>')[0])
for i in range(1,len(comments)):
  print(comments[i])
  

Я распечатаю вывод таким образом.

 <td align="right" bgcolor="#FFFFFF" class="text-f11-b">No. Of Employees</td>
<td bgcolor="#FFFFFF" class="text-f11">10</td>

<tr>
<td align="right" bgcolor="#FFFFFF" class="text-f11-b">Export Turnover</td>
<td bgcolor="#FFFFFF" class="text-f11"></td>
</tr>


<tr>
<td align="right" valign="top" bgcolor="#FFFFFF" class="text-f11-b">Annual Turnover</td>
<td valign="top" bgcolor="#FFFFFF" class="text-f11">10 </td>
</tr>


<tr>
<td align="right" valign="top" bgcolor="#FFFFFF" class="text-f11-b">Import Turnover</td>
<td valign="top" bgcolor="#FFFFFF" class="text-f11"> </td>
</tr>


<tr>
<td align="right" valign="top" bgcolor="#ffffff" class="text-f11-b">Bankers</td>
<td valign="top" bgcolor="#ffffff" class="text-f11">Hdfc Bank </td>
</tr>
  

Комментарии:

1. Я хочу извлекать один элемент за другим, но он так не работает.

2. Что значит, что он не печатается один за другим?

3. он печатается один за другим, но если мне нужны определенные элементы тега tr, т.Е. Текст тега 2 tds, я этого не получаю.