Не получить вложенную таблицу, содержащую информацию о компании, используя python beautifulsoup - PullRequest
0 голосов
/ 26 февраля 2019

код:

from bs4 import BeautifulSoup

import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}

r = requests.get('http://indianindustriesdirectory.com/viewCompanyDetails.asp?compid=3855',headers=headers)

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

table = soup.find('table',{"width":"99%","cellpadding":"0","cellspacing":"0","border":"0"})

contact_person = table.find('b')

print(contact_person)

хочу получить всю информацию о компании, но я получаю таблицу.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

URL, на который вы ссылаетесь, имеет несколько таблиц, которые выглядят почти одинаково, поэтому я выбрал одну из них случайным образом (в данном случае table[5]).Этот код, который использует панды, а не BeautifulSoup, должен получить таблицу, похожую на таблицу на странице:

import pandas as pd  

all_tables = pd.read_html("http://indianindustriesdirectory.com/viewCompanyDetails.asp?compid=3855")

my_table = all_tables[5][[0,2]]
my_table.drop(my_table.tail(5).index,inplace=False).dropna(axis=0, how='all')
0 голосов
/ 26 февраля 2019

Вы можете изменить синтаксический анализатор библиотеки с lxml на html.parser, и вы найдете все необходимые данные внутри элемента table.

Затем вы можете применить метод find_all() ко всем<tr> таблицы и изучить данные

Пример кода:

from bs4 import BeautifulSoup
import requests

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}
r = requests.get('http://indianindustriesdirectory.com/viewCompanyDetails.asp?compid=3855',headers=headers)
soup = BeautifulSoup(r.text,'html.parser')

table = soup.find('table',{"width":"99%","cellpadding":"0","cellspacing":"0","border":"0"})
trs = table.find_all('tr')
for tr in trs:
    print(tr.get_text())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...