2017-02-21 12 views
1

Я пытаюсь получить текст из html-кода внутри тега таблицы, но я не получаю весь текст. Вместо этого я получаю некоторый частичный текст, а остальное игнорируетсяОшибка получения текста из таблицы html с помощью beutifulsoup и mechanize

Вот мой выход и код:

выход

Public Sector Organization (Recruitment Test) 
Test held on: Saturday, 3rd & Sunday 4th, December 2016 
>>> 

код

import mechanize 
from bs4 import BeautifulSoup 
import urllib 
from PIL import Image 
import os 


Roll=60170001   

url = "http://nts.org.pk/Test&Products/Results/012017/PubSecOrg_24122016_Result/Search.php" 

br = mechanize.Browser() 
br.set_handle_robots(False) # ignore robots 
br.open(url) 
br.select_form(nr=0)                
rollnumber=str(Roll) 
captcha=11111 
cap=str(captcha)       
br["RollNo"]=rollnumber 
br["captcha"]=cap 
res = br.submit() 
content = res.read() 
soup = BeautifulSoup(content,"html.parser") 
rolln=soup('table')[2] 
rolln=rolln.text.encode('utf-8') 
print rolln 
+0

Каков требуемый выход? –

+0

В принципе, мой вывод должен быть целым текстом внутри таблицы [2], что несколько похоже на это. Организация общественного сектора (Тест на набор персонала) Тест состоялся: суббота, 3 и воскресенье 4 декабря 2016 года (результат) Загрузить Дата: Среда, 23 ноября 2016 результата поиска по ключевому слову 60170001 Ролл Нет Имени Имени отца CNIC сообщения NTS Marks Мумтаза ALI RAHMAN Валите 16101-1938424-7 преподавателя (BPS-17) (Электроника) 67 Текущая дата/время: среда 22nd, February 2017, 09:30:48 PM – Mumtaz

ответ

0

Этот подход, похоже, делает то, что вы хотите.

>>> content = open(r"C:\scratch\___National Testing Service___.html").read() 
>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup(content, 'lxml') 
>>> tables = soup.findAll('table') 
>>> len(tables) 
8 
>>> tables[2].text 
'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nPublic Sector Organization (Recruitment Test)\nTest held on: Saturday, 3rd & Sunday 4th, December 2016\n\n       \n       (Result)\n\n\n\n\n\n        Search Result for the keyword "\n        60170001        \n"\n\n\n\nRoll No\nName\nFather Name\nCNIC\n\nPost\n\n\nKDPH\n\n\nNTS Marks\n\n\n\n60170001\nSARA ISLAM        \nNAZAR UL ISLAM \n17301-2406027-4 \n\n Assistant Manager(Electronics Engineering) \n\n\n  \n\n\n 63 \n\n\n\n\n\n\n\n\n\n\nCurrent Date/Time: Tuesday 21st, February 2017 , 11:49:59 PM       \n\n\n\n\n\xa0\n\n' 

Предполагая, что mechanize дает файл в том же формате, что я был в состоянии получить, просто открыв страницу в браузере Chrome и сохранить его, вы должны быть в порядке.

+0

Спасибо большое. Наконец он отлично работал. только что установленный lxml. – Mumtaz

+0

Добро пожаловать. Я не мог быть уверен, в чем проблема. –