2016-12-28 4 views
-1

Я использую Python 3.4, Windows 10 и Visual Studio 2015. Я пытаюсь создать программу, которая сбрасывает номера телефонов от websites formatted like this one. Я пользуюсь Beautiful Soup 4, и я пытаюсь получить количество кроватей со стола. Я пробовал soup.select('.td'), и он возвращает только пустой массив, я не уверен, что еще попробовать.Получение атрибутов таблицы с сайта

+0

'.td' ищет класс с именем td, см. Http://stackoverflow.com/questions/13074586/extracting-selected-columns-from-a-table-using-beautifulsoup, чтобы получить определенный столбец – depperm

+0

« Извините , Бесплатная справочная служба AHD.com в вашей стране недоступна ». Вы должны опубликовать html-код. –

+0

Я постараюсь сделать это позже, я не могу дотянуться до него прямо сейчас. Я тоже пробовал это без периода, не работал. Попробуй свое предложение, спасибо. – Sig

ответ

0

Почему бы не захватить всю страницу HTML как строку, а затем использовать регулярное выражение для ее анализа? Разве это не где Python?

В случае, если вы боитесь регулярных выражений, здесь новички учебник: https://regexone.com/

Синтаксис Python может немного отличаться: https://docs.python.org/2/library/re.html

И я серьезно надеюсь, что вы не выскабливание телефона номера для гнусных целей. Мне не нужен телефонный звонок от вас :-).

Вот еще один Stack Overflow ответ, который дает хорошую отправную регулярное выражение: https://stackoverflow.com/a/123666/5129424

Вот регулярное выражение для 7 или 10 цифр, с расширениями разрешено, разделители пространства, черточки, или периоды:

^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$ 

Просто потому, что вы «можете испортить это», не означает, что вы не должны пытаться его протестировать. Независимо от того, что вы делаете, вы либо находитесь во власти структуры страницы, которая может измениться, либо формата телефонных номеров, которые могут также измениться. Идеального решения нет.

+0

Использование регулярного выражения для разбор HTML/XML не является особенно приятным, и может быть даже опасно, если (и вы в этом случае) не получите какую-то часть регулярного выражения – Governa

+0

Книга, которую я изучаю из этого регулярного выражения, не помогает, я могу попробовать это если я должен хотя. – Sig

+0

@ Governa Это опасно, если оно не проверено. И получить регулярное выражение «неправильно» может быть связано с любым количеством вещей - изменениями формата, искаженными выражениями и т. Д. – TinkerTenorSoftwareGuy

 Смежные вопросы

  • Нет связанных вопросов^_^