crawlbaseDocs
Anmelden

API-Nutzung

Fügen Sie &scraper=stackexchange-thread zu einem Crawling API-Request hinzu. URL-kodieren Sie die Ziel-URL im url-Parameter.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file' \
  --data-urlencode 'scraper=stackexchange-thread' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file',
    {'scraper': 'stackexchange-thread'}
)

import json
data = json.loads(res['body'])
const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });

const res = await api.get(
  'https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file',
  { scraper: 'stackexchange-thread' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file', scraper: 'stackexchange-thread')
data = JSON.parse(res.body)

Beispiel-Eingabe-URL

Im url-Parameter funktioniert jede Stack Exchange-Frage-URL, von jeder Site im Netzwerk. Zum Beispiel:

https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file
https://superuser.com/questions/441895/automate-opening-html-and-printing-to-pdf
https://askubuntu.com/questions/1206658/why-is-apt-held-back
https://serverfault.com/questions/439471/which-openvpn-cipher-should-i-use
https://mathoverflow.net/questions/44265/is-the-riemann-hypothesis

Response-Struktur

JSON-Response-Body. Feldtypen können null sein, wenn die Quellseite den Wert nicht enthält.

question
object
Die Frage selbst.
question.id
string
Stack Exchange Fragen-ID.
question.title
string
Fragetitel.
question.url
string
Kanonische URL der Frage.
question.body
string
Text des Fragetexts.
question.score
integer
Fragen-Score (Upvotes minus Downvotes).
question.viewCount
integer
Anzahl der Aufrufe der Frage.
question.tags
array
Auf die Frage angewandte Tags.
question.askedAt
string
Erstellungszeit der Frage (ISO 8601).
question.author
object
Autor der Frage.
question.author.name
string
Anzeigename des Fragenautors.
question.author.url
string
Profil-URL des Fragenautors.
question.author.reputation
integer
Reputations-Score des Fragenautors.
question.comments
array
Kommentare zur Frage.
question.comments[].id
string
Kommentar-ID.
question.comments[].score
integer
Kommentar-Score.
question.comments[].body
string
Kommentartext.
question.comments[].author
string
Anzeigename des Kommentarautors.
question.comments[].authorUrl
string
Profil-URL des Kommentarautors.
question.comments[].createdAt
string
Erstellungszeit des Kommentars (ISO 8601).
answerCount
integer
Anzahl der in answers zurückgegebenen Antworten.
answers
array
Antworten auf die Frage, in Listenreihenfolge.
answers[].id
string
Antwort-ID.
answers[].score
integer
Antwort-Score (Upvotes minus Downvotes).
answers[].isAccepted
boolean
True, wenn dies die akzeptierte Antwort ist.
answers[].body
string
Text des Antworttexts.
answers[].author
object
Autor der Antwort.
answers[].author.name
string
Anzeigename des Antwortautors.
answers[].author.url
string
Profil-URL des Antwortautors.
answers[].author.reputation
integer
Reputations-Score des Antwortautors.
answers[].createdAt
string
Erstellungszeit der Antwort (ISO 8601).
answers[].comments
array
Kommentare zur Antwort.
answers[].comments[].id
string
Kommentar-ID.
answers[].comments[].score
integer
Kommentar-Score.
answers[].comments[].body
string
Kommentartext.
answers[].comments[].author
string
Anzeigename des Kommentarautors.
answers[].comments[].authorUrl
string
Profil-URL des Kommentarautors.
answers[].comments[].createdAt
string
Erstellungszeit des Kommentars (ISO 8601).

Beispiel-Response

{
  "question": {
    "id": "2861071",
    "title": "How to modify a text file?",
    "url": "https://stackoverflow.com/questions/2861071/how-to-modify-a-text-file",
    "body": "I'm using Python and I need to insert a line at the start of a text file without loading the whole file into memory. Is there a way to do this in place, or do I have to rewrite the file?",
    "score": 312,
    "viewCount": 486201,
    "tags": ["python", "file", "text-files"],
    "askedAt": "2010-05-18T20:11:33Z",
    "author": {
      "name": "Nathan Fellman",
      "url": "https://stackoverflow.com/users/8460/nathan-fellman",
      "reputation": 127843
    },
    "comments": [
      {
        "id": "2954120",
        "score": 3,
        "body": "Do you need to preserve the original file, or is rewriting acceptable?",
        "author": "Greg Hewgill",
        "authorUrl": "https://stackoverflow.com/users/893/greg-hewgill",
        "createdAt": "2010-05-18T20:19:04Z"
      }
    ]
  },
  "answerCount": 2,
  "answers": [
    {
      "id": "2861108",
      "score": 401,
      "isAccepted": true,
      "body": "You cannot insert into the middle of a file without rewriting it. Read the file into a list of lines, insert your new line, then write it all back:\n\n    with open('file.txt') as f:\n        lines = f.readlines()\n    lines.insert(0, 'new first line\\n')\n    with open('file.txt', 'w') as f:\n        f.writelines(lines)\n",
      "author": {
        "name": "Roberto Bonvallet",
        "url": "https://stackoverflow.com/users/193568/roberto-bonvallet",
        "reputation": 30215
      },
      "createdAt": "2010-05-18T20:15:52Z",
      "comments": [
        {
          "id": "2954260",
          "score": 12,
          "body": "For very large files, stream through a temporary file instead of holding everything in memory.",
          "author": "John Machin",
          "authorUrl": "https://stackoverflow.com/users/253537/john-machin",
          "createdAt": "2010-05-18T21:02:11Z"
        }
      ]
    },
    {
      "id": "2861180",
      "score": 47,
      "isAccepted": false,
      "body": "If the file is large, use fileinput with inplace=True to edit it line by line without loading it all at once.",
      "author": {
        "name": "codeape",
        "url": "https://stackoverflow.com/users/18770/codeape",
        "reputation": 98412
      },
      "createdAt": "2010-05-18T20:24:39Z",
      "comments": []
    }
  ]
}