Python потребности lxml справка синтаксиса для парсинга HTML

Проблема в том, что вы || (или), это просто простая ошибка булевой алгебры (логики высказываний), она должна быть && (и)

. сжатый цикл проверки

var num = 0;

Console.WriteLine("What is your secret number between 1 and 100 inclusively?");
var str = Console.ReadLine();

// while its not a number, "or" the number is less or equal to 0 "or" greater than 100
// annoy them with a message 
while (!int.TryParse(str, out num ) || num  <= 0 || num  > 100)
{
   Console.WriteLine("Omg you had one job, a number between 1 and 100 inclusively... Try again");
   str= Console.ReadLine()
}

Console.WriteLine($"You won, your number is {num } ");
16
задан Cody Gray 27 May 2013 в 08:58
поделиться

2 ответа

Хорошо, во-первых, в отношении парсинга HTML: если Вы следуете рекомендации zweiterlinde, и S.Lott, по крайней мере, используют версию beautifulsoup, включенный с lxml. Тем путем Вы также получите выгоду хорошего xpath или css селекторного интерфейса.

Однако я лично предпочитаю Ian Bicking синтаксический анализатор HTML, включенный в lxml.

, Во-вторых, .find() и .findall() прибывают из lxml, пытающегося быть совместимым с ElementTree, и те два метода описаны в Поддержка XPath в ElementTree.

Те две функции довольно просты в использовании, но они - очень ограниченный XPath. Я рекомендую пытаться использовать или полный метод lxml xpath() или, если Вы уже знакомы с CSS, с помощью cssselect() метод .

Вот некоторые примеры со строкой HTML, проанализированной как это:

from lxml.html import fromstring
mySearchTree = fromstring(your_input_string)

Используя css селекторный класс Ваша программа примерно выглядела бы примерно так:

# Find all 'a' elements inside 'tr' table rows with css selector
for a in mySearchTree.cssselect('tr a'):
    print 'found "%s" link to href "%s"' % (a.text, a.get('href'))

эквивалентное использование xpath метод было бы:

# Find all 'a' elements inside 'tr' table rows with xpath
for a in mySearchTree.xpath('.//tr/*/a'):
    print 'found "%s" link to href "%s"' % (a.text, a.get('href'))
27
ответ дан 30 November 2019 в 17:28
поделиться

Существует ли причина, которую Вы не используете Красивый Суп для этого проекта? Это сделает контакт с недостаточно хорошо сформированными документами намного легче.

5
ответ дан 30 November 2019 в 17:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: