發送您的第一個請求
使用 Thordata 的 Web Scraper API 發送您的第一個請求。開始之前,您需要取得 API Token。 您可以在【API構建器】頁面獲得免費試用。 然後,在「Token」欄位複製您的憑證。 備註: 您獲得的 Token 屬於敏感信息,請妥善保管,切勿洩露。如因 Token 洩露導致您的資源被濫用,相關後果需由您自行承擔,本平台不負責任。 程式碼範例: 獲得 API 憑證後,請使用以下程式碼發送您的第一個請求:
curl -X POST "http://scraperapi.thordata.com/builder" \
-H "Authorization: Bearer Token-ID" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "spider_name=amazon.com" \
-d "individual_params={\"spider_parameters\":[{\"url\": \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\",\"zip_code\": \"94107\"}],\"spider_id\":\"amazon_product_by-url\",\"spider_errors\":true}" \
-d "file_name={{TasksID}}"
curl -X POST "http://scraperapi.thordata.com/builder" ^
-H "Authorization: Bearer Token-ID" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "spider_name=amazon.com" ^
-d "individual_params={\"spider_parameters\":[{\"url\": \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\",\"zip_code\": \"94107\"}],\"spider_id\":\"amazon_product_by-url\",\"spider_errors\":true}" ^
-d "file_name={{TasksID}}"
import requests
import json
def main():
client = requests.Session()
target_url = "https://scraperapi.thordata.com/builder"
spider_info = {
"spider_errors": True,
"spider_id": "amazon_product_by-url",
"spider_parameters": [
{
"url": "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726",
"zip_code": "94107"
}
],
}
spider_info_json = json.dumps(spider_info)
form_data = {
"spider_info": spider_info_json,
"spider_name": "amazon.com",
"custom_naming": "{{TasksID}}"
}
headers = {
"Authorization": "Bearer ba0c260cbd926eb2ba274ae5b6cf6230",
"Content-Type": "application/x-www-form-urlencoded"
}
try:
resp = client.post(target_url, data=form_data, headers=headers)
resp.raise_for_status() # Raises an HTTPError for bad responses
print(f"Status Code: {resp.status_code}")
print(f"Response Body: {resp.text}")
except requests.exceptions.RequestException as e:
print(f"Error sending request: {e}")
if __name__ == "__main__":
main()
package main
import (
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"strings"
)
func main() {
client := &http.Client{}
targetURL := "https://scraperapi.thordata.com/builder"
spiderInfo := map[string]interface{}{
"spider_errors": true,
"spider_id": "amazon_product_by-url",
"spider_parameters": []map[string]string{
{
"url": "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726",
"zip_code": "94107",
},
},
}
spiderInfoJSON, err := json.Marshal(spiderInfo)
if err != nil {
fmt.Println("Error marshaling JSON:", err)
return
}
formData := url.Values{}
formData.Add("spider_info", string(spiderInfoJSON))
formData.Add("spider_name", "amazon.com")
formData.Add("custom_naming", "{{TasksID}}")
req, err := http.NewRequest("POST", targetURL, strings.NewReader(formData.Encode()))
if err != nil {
fmt.Println("Error creating request:", err)
return
}
req.Header.Set("Authorization", "Bearer ba0c260cbd926eb2ba274ae5b6cf6230")
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response:", err)
return
}
fmt.Printf("Status Code: %d\n", resp.StatusCode)
fmt.Printf("Response Body: %s\n", body)
}
const axios = require('axios');
const qs = require('querystring');
async function main() {
const targetURL = "https://scraperapi.thordata.com/builder";
const spiderInfo = {
spider_errors: true,
spider_id: "amazon_product_by-url",
spider_parameters: [
{
url: "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726",
zip_code: "94107"
}
]
};
try {
const spiderInfoJSON = JSON.stringify(spiderInfo);
const formData = qs.stringify({
spider_info: spiderInfoJSON,
spider_name: "amazon.com",
custom_naming: "{{TasksID}}"
});
const response = await axios.post(targetURL, formData, {
headers: {
'Authorization': 'Bearer ba0c260cbd926eb2ba274ae5b6cf6230',
'Content-Type': 'application/x-www-form-urlencoded'
}
});
console.log(`Status Code: ${ response.status } `);
console.log(`Response Body: ${ JSON.stringify(response.data) } `);
} catch (error) {
if (error.response) {
console.error(`Error response: ${ error.response.status } - ${ error.response.data }`);
} else if (error.request) {
console.error('No response received:', error.request);
} else {
console.error('Error:', error.message);
}
}
}
main();
<?php
$targetURL = "https://scraperapi.thordata.com/builder";
$spiderInfo = [
"spider_errors" => true,
"spider_id" => "amazon_product_by-url",
"spider_parameters" => [
[
"url" => "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726",
"zip_code" => "94107"
]
]
];
$spiderInfoJSON = json_encode($spiderInfo);
if ($spiderInfoJSON === false) {
die("Error marshaling JSON: " . json_last_error_msg());
}
$formData = [
"spider_info" => $spiderInfoJSON,
"spider_name" => "amazon.com",
"custom_naming" => "{{TasksID}}"
];
$options = [
"http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Authorization: Bearer ba0c260cbd926eb2ba274ae5b6cf6230",
"Content-Type: application/x-www-form-urlencoded",
"Accept: application/json"
]),
"content" => http_build_query($formData)
]
];
$context = stream_context_create($options);
$response = file_get_contents($targetURL, false, $context);
if ($response === false) {
$error = error_get_last();
die("Error sending request: " . $error["message"]);
}
// Get HTTP status code
$statusCode = null;
if (isset($http_response_header[0])) {
preg_match('/HTTP\/\d\.\d (\d{3})/', $http_response_header[0], $matches);
$statusCode = $matches[1] ?? null;
}
echo "Status Code: " . $statusCode . "\n";
echo "Response Body: " . $response . "\n";
?>
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String targetURL = "https://scraperapi.thordata.com/builder";
// Create the spider info data structure
Map<String, Object> spiderInfo = new HashMap<>();
spiderInfo.put("spider_errors", true);
spiderInfo.put("spider_id", "amazon_product_by-url");
List<Map<String, String>> spiderParameters = new ArrayList<>();
Map<String, String> param1 = new HashMap<>();
param1.put("url", "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726");
param1.put("zip_code", "94107");
spiderParameters.add(param1);
spiderInfo.put("spider_parameters", spiderParameters);
try {
// Convert spiderInfo to JSON
String spiderInfoJSON = new com.google.gson.Gson().toJson(spiderInfo);
// Prepare form data
String formData = "spider_info=" + URLEncoder.encode(spiderInfoJSON, StandardCharsets.UTF_8) +
"&spider_name=" + URLEncoder.encode("amazon.com", StandardCharsets.UTF_8) +
"&custom_naming=" + URLEncoder.encode("{{TasksID}}", StandardCharsets.UTF_8);
// Create and configure the connection
HttpURLConnection connection = (HttpURLConnection) new URL(targetURL).openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Authorization", "Bearer ba0c260cbd926eb2ba274ae5b6cf6230");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setDoOutput(true);
// Send the request
try (OutputStream os = connection.getOutputStream()) {
byte[] input = formData.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
// Get the response
int statusCode = connection.getResponseCode();
String responseBody;
try (InputStream is = connection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
responseBody = response.toString();
}
System.out.println("Status Code: " + statusCode);
System.out.println("Response Body: " + responseBody);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
class Program
{
static async Task Main(string[] args)
{
var client = new HttpClient();
var targetUrl = "https://scraperapi.thordata.com/builder";
var spiderInfo = new
{
spider_errors = true,
spider_id = "amazon_product_by-url",
spider_parameters = new List<Dictionary<string, string>>;
{
new Dictionary<string, string>
{
{"url", "https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726"},
{"zip_code", "94107"}
}
}
};
var spiderInfoJson = Newtonsoft.Json.JsonConvert.SerializeObject(spiderInfo);
var formData = new Dictionary<string, string>
{
{ "spider_info", spiderInfoJson },
{ "spider_name", "amazon.com" },
{ "custom_naming", "{{TasksID}}"}
};
var request = new HttpRequestMessage(HttpMethod.Post, targetUrl)
{
Content = new FormUrlEncodedContent(formData)
};
request.Headers.Add("Authorization", "Bearer ba0c260cbd926eb2ba274ae5b6cf6230");
try
{
var response = await client.SendAsync(request);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Status Code: {(int)response.StatusCode}");
Console.WriteLine($"Response Body: {responseBody}");
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error sending request: {e.Message}");
}
}
}
require 'json'
require 'net/http'
require 'uri'
begin
target_url = URI.parse('https://scraperapi.thordata.com/builder')
spider_info = {
spider_errors: true,
spider_id: 'amazon_product_by-url',
spider_parameters: [
{
url: 'https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726',
zip_code: '94107'
}
]
}
spider_info_json = spider_info.to_json
form_data = URI.encode_www_form(
spider_info: spider_info_json,
spider_name: 'amazon.com',
custom_naming: '{{TasksID}}'
)
http = Net::HTTP.new(target_url.host, target_url.port)
request = Net::HTTP::Post.new(target_url.path)
request['Authorization'] = 'Bearer ba0c260cbd926eb2ba274ae5b6cf6230'
request['Content-Type'] = 'application/x-www-form-urlencoded'
request.body = form_data
response = http.request(request)
puts "Status Code: #{response.code}"
puts "Response Body: #{response.body}"
rescue JSON::GeneratorError => e
puts "Error generating JSON: #{e.message}"
rescue URI::InvalidURIError => e
puts "Invalid URL: #{e.message}"
rescue Net::HTTPError => e
puts "HTTP Error: #{e.message}"
rescue StandardError => e
puts "Error: #{e.message}"
end
發送請求後,系統會返回 JSON 或 CSV 格式的輸出結果,您可以前往「任務」列表查看。

如果您需要更多幫助,請通過電子郵件 [email protected] 聯絡我們。
Last updated
Was this helpful?