Filter by HTML element
Pro-tips:
-
Use the preview page to see your filters and triggers highlighted.
-
Some sites use JavaScript to create the content, for this you should use the Chrome/WebDriver Fetcher
{% set field = render_field(form.include_filters,
rows=5,
placeholder="#example
xpath://body/div/span[contains(@class, 'example-class')]",
class="m-d")
%}
{{ field }}
{% if '/text()' in field %}
Note!: //text() function does not work where the <element> contains <![CDATA[]]>
{% endif %}
One rule per line, any rules that matches will be used.
- CSS - Limit text to this CSS rule, only text matching this CSS rule is included.
- JSON - Limit text to this JSON rule, using either JSONPath or jq (if installed).
- JSONPath: Prefix with
json:
, use json:$
to force re-formatting if required, test your JSONPath here.
{% if jq_support %}
- jq: Prefix with
jq:
and test your jq here. Using jq allows for complex filtering and processing of JSON data with built-in functions, regex, filtering, and more. See examples and documentation here.
{% else %}
- jq support not installed
{% endif %}
- XPath - Limit text to this XPath rule, simply start with a forward-slash. To specify XPath to be used explicitly or the XPath rule starts with an XPath function: Prefix with
xpath:
- Example:
//*[contains(@class, 'sametext')]
or xpath:count(//*[contains(@class, 'sametext')])
, test your XPath here
- Example: Get all titles from an RSS feed
//title/text()
- To use XPath1.0: Prefix with
xpath1:
Please be sure that you thoroughly understand how to write CSS, JSONPath, XPath{% if jq_support %}, or jq selector{%endif%} rules before filing an issue on GitHub! here for more CSS selector help.
{{ render_field(form.subtractive_selectors, rows=5, placeholder="header
footer
nav
.stockticker") }}
- Remove HTML element(s) by CSS selector before text conversion.
- Add multiple elements or CSS selectors per line to ignore multiple parts of the HTML.