提取规则
将经过 URL 编码的 JSON 传递给 extract_rules,以从目标页面获取结构化输出。每条规则包含一个 CSS 选择器、一个可选的输出类型,以及一个是否返回所有匹配项的标志。无论是否启用 JavaScript 渲染,提取规则均可正常工作。
Endpoint
Section titled “Endpoint” GET https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=<TARGET_URL>&extract_rules=<URL_ENCODED_JSON>
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | yes | 您的 Web Scraping API 密钥 |
url | string | yes | 要抓取的目标 URL |
extract_rules | string | yes | 描述提取规则的 URL 编码 JSON。 |
Rule object
Section titled “Rule object”| Field | Type | Required | Description |
|---|---|---|---|
selector | string | yes | CSS 选择器。 |
output | string | no | html(默认)、text,或用于提取属性的 @attr。 |
all | string | no | "1" 表示以数组形式返回所有匹配项,"0"(默认)表示仅返回第一个匹配项。 |
Example request
Section titled “Example request”将页面标题以文本形式提取:
{"title": {"selector": "h1", "output": "text"}}curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https%3A%2F%2Fexample.com&extract_rules=%7B%22title%22%3A%20%7B%22selector%22%3A%20%22h1%22%2C%20%22output%22%3A%20%22text%22%7D%7D"import jsonimport requests
rules = {"title": {"selector": "h1", "output": "text"}}r = requests.get("https://scrape.shifter.io/v1", params={ "api_key": "YOUR_API_KEY", "url": "https://example.com", "extract_rules": json.dumps(rules),})print(r.json())import fetch from 'node-fetch';
const rules = { title: { selector: 'h1', output: 'text' } };const url = 'https://scrape.shifter.io/v1?' + new URLSearchParams({ api_key: 'YOUR_API_KEY', url: 'https://example.com', extract_rules: JSON.stringify(rules),});const res = await fetch(url);console.log(await res.json());Example response
Section titled “Example response”{ "title": "Example Domain" }