2013-12-21 1 views
0

Вместо «rss» я хочу добавить к ней глобальную переменную. Так что мне не нужно менять его снова и снова. sel.select ('// a [содержит (@href, "rss")]/@ href'). Extract() примерно так: sel.select ('// a [contains (@href, url_type))]/@ HREF ') экстракт()Добавить переменную в функции выбора HtmlXPathSelector

+0

Можете ли вы дать более подробную информацию о том, что именно вы пытаетесь сделать? – shanks

+0

Я пытаюсь прочитать файл, который содержит список доменов, которые будут сканироваться один за другим. Я ищу ссылки, содержащие определенные ключевые слова. Как pdf или rss. Я буду читать эти ключевые слова из файла. Вот почему мне нужна переменная. – blackmamba

ответ

1

Использование str.format для вставки значения переменной в выражение XPath:.

sel.select('//a[contains(@href, "{0}")]/@href'.format(url_type)).extract()

+0

Можно ли добавить два оператора в select. Я попробовал это, но он, похоже, не работает. sel.select ("// a [содержит (@href," {0} ")]/@ href | // html/head/link [@ type = 'application/{0} + xml']/@ href" .format (url_type)). extract() – blackmamba

+0

Да, возможно, просто не путайте цитаты: '// a [содержит (@href, "{0}")]/@ href | //html/head/link[@type="application/{0}+xml"]/@href'.format(url_type) – cybosser

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