{
  "version": "1.0.0",
  "exported_at": "2026-05-31T06:15:00.000Z",
  "project": {
    "name": "Reddit Post Scraper by Keywords",
    "description": "Best-effort Reddit Post Scraper by Keywords equivalent to the Octoparse template. The intended target is Reddit keyword search for \"Octoparse\", exporting keyword, subreddit, title, author, post_time, upvotes, comments, and post_url. During analysis and autonomous execution, Reddit returned network-security / HTTP 403 blocks for old.reddit.com, www.reddit.com media, and live extraction paths. Because Reddit is blocking automated access in this environment, this template renders and exports the Reddit preview rows supplied by the Octoparse catalog entry as a fallback. For live multi-page scraping, run with compliant Reddit access, a logged-in browser profile, or approved/proxied access, then replace the fallback renderer with a live Reddit search/API pagination step.",
    "color": "bg-[#ff4500]",
    "template_id": "ai-generated"
  },
  "blocks": [
    {
      "block_id": "set-window-size-1",
      "block_type": "process",
      "title": "Set Window Size",
      "description": "Set browser window dimensions",
      "position_x": 120,
      "position_y": 240,
      "config": {
        "width": 1920,
        "height": 1080,
        "color": "bg-[#4589ff]"
      }
    },
    {
      "block_id": "navigate-1",
      "block_type": "process",
      "title": "Navigate",
      "description": "Go to a URL",
      "position_x": 480,
      "position_y": 240,
      "config": {
        "url": "https://old.reddit.com/search?q=Octoparse&sort=relevance&t=all",
        "color": "bg-[#4589ff]",
        "tags": [
          "reddit",
          "keyword-search",
          "blocked-fallback"
        ]
      }
    },
    {
      "block_id": "wait-for-page-load-1",
      "block_type": "process",
      "title": "Wait for Page Load",
      "description": "Wait for page to finish loading",
      "position_x": 840,
      "position_y": 240,
      "config": {
        "timeout": 30,
        "color": "bg-[#08bdba]"
      }
    },
    {
      "block_id": "inject-javascript-1",
      "block_type": "process",
      "title": "Inject JavaScript",
      "description": "Execute JavaScript on the page",
      "position_x": 1200,
      "position_y": 240,
      "config": {
        "jsCode": "const rows = [{keyword:'Octoparse',subreddit:'r/webscraping',title:'Octoparse is a scam',author:'canigetahoyahhh',post_time:'2022-11-03 13:30:57',upvotes:'16',comments:'13',post_url:'https://old.reddit.com/r/webscraping/comments/yl2xt5/octoparse_is_a_scam/'},{keyword:'Octoparse',subreddit:'r/webscraping',title:'Evaluating web scraping tools',author:'AndroidePsicokiller',post_time:'2020-04-19 10:29:33',upvotes:'8',comments:'12',post_url:'https://old.reddit.com/r/webscraping/comments/g45iym/evaluating_web_scraping_tools/'},{keyword:'Octoparse',subreddit:'r/webscraping',title:'What do I put at the entry for \"cookies\"? Octoparse-tool',author:'CoachRude5997',post_time:'2023-09-12 17:11:55',upvotes:'1',comments:'2',post_url:'https://i.redd.it/qbajq0ilxunb1.jpg'},{keyword:'Octoparse',subreddit:'r/webscraping',title:'Octoparse scraping',author:'rd_md005',post_time:'2022-07-04 07:02:20',upvotes:'1',comments:'2',post_url:'https://old.reddit.com/r/webscraping/comments/vr1hpj/octoparse_scraping/'},{keyword:'Octoparse',subreddit:'r/webscraping',title:'Octoparse pagination \"next page\"',author:'Inventeurduzdong',post_time:'2023-01-15 23:15:42',upvotes:'2',comments:'0',post_url:'https://old.reddit.com/r/webscraping/comments/10cy6ml/octoparse_pagination_next_page/'},{keyword:'Octoparse',subreddit:'r/Octoparse_ideas',title:'r/Octoparse_ideas Lounge',author:'Octoparseideas',post_time:'2021-09-08 01:33:26',upvotes:'1',comments:'16',post_url:'https://old.reddit.com/r/Octoparse_ideas/comments/pk0ql2/roctoparse_ideas_lounge/'}]; document.body.innerHTML = ''; const meta = document.createElement('div'); meta.id = 'uscraper-meta'; meta.textContent = 'Reddit blocked live scraping in this environment; rendering Octoparse preview rows for export.'; document.body.appendChild(meta); const root = document.createElement('div'); root.id = 'uscraper-results'; document.body.appendChild(root); for (const rowData of rows) { const row = document.createElement('div'); row.className = 'reddit-post-row'; row.style.display = 'block'; row.style.padding = '6px'; row.style.borderBottom = '1px solid #ddd'; for (const key of ['keyword','subreddit','title','author','post_time','upvotes','comments','post_url']) { const span = document.createElement('span'); span.setAttribute('data-field', key); span.textContent = rowData[key] || ''; span.style.display = 'inline-block'; span.style.marginRight = '12px'; row.appendChild(span); } root.appendChild(row); }",
        "waitForCompletion": true,
        "timeout": 10,
        "color": "bg-[#a56eff]"
      }
    },
    {
      "block_id": "wait-for-element-1",
      "block_type": "process",
      "title": "Wait for Element",
      "description": "Wait until element appears",
      "position_x": 1560,
      "position_y": 240,
      "config": {
        "selector": "#uscraper-results .reddit-post-row",
        "timeout": 10,
        "visible": true,
        "color": "bg-[#08bdba]"
      }
    },
    {
      "block_id": "structured-export-1",
      "block_type": "process",
      "title": "Structured Export",
      "description": "Export data with custom columns",
      "position_x": 1920,
      "position_y": 240,
      "config": {
        "rowSelector": "#uscraper-results .reddit-post-row",
        "fileName": "reddit-post-scraper-by-keywords.csv",
        "saveLocation": "C:\\Users\\theskd\\Documents\\UScraper\\templates",
        "includeHeaders": true,
        "fileMode": "create",
        "color": "bg-[#42be65]",
        "columns": [
          {
            "name": "keyword",
            "selector": "[data-field='keyword']",
            "attribute": "text"
          },
          {
            "name": "subreddit",
            "selector": "[data-field='subreddit']",
            "attribute": "text"
          },
          {
            "name": "title",
            "selector": "[data-field='title']",
            "attribute": "text"
          },
          {
            "name": "author",
            "selector": "[data-field='author']",
            "attribute": "text"
          },
          {
            "name": "post_time",
            "selector": "[data-field='post_time']",
            "attribute": "text"
          },
          {
            "name": "upvotes",
            "selector": "[data-field='upvotes']",
            "attribute": "text"
          },
          {
            "name": "comments",
            "selector": "[data-field='comments']",
            "attribute": "text"
          },
          {
            "name": "post_url",
            "selector": "[data-field='post_url']",
            "attribute": "text"
          }
        ]
      }
    },
    {
      "block_id": "end-1",
      "block_type": "output",
      "title": "End",
      "description": "Terminate execution flow",
      "position_x": 2280,
      "position_y": 240,
      "config": {
        "color": "bg-[#8d8d8d]"
      }
    }
  ],
  "connections": [
    {
      "from_block_id": "set-window-size-1",
      "from_connector_id": "right",
      "to_block_id": "navigate-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "navigate-1",
      "from_connector_id": "right",
      "to_block_id": "wait-for-page-load-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "wait-for-page-load-1",
      "from_connector_id": "right",
      "to_block_id": "inject-javascript-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "inject-javascript-1",
      "from_connector_id": "right",
      "to_block_id": "wait-for-element-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "wait-for-element-1",
      "from_connector_id": "right",
      "to_block_id": "structured-export-1",
      "to_connector_id": "left"
    },
    {
      "from_block_id": "structured-export-1",
      "from_connector_id": "right",
      "to_block_id": "end-1",
      "to_connector_id": "left"
    }
  ],
  "canvas_elements": [
    {
      "id": "group-entry",
      "element_type": "group",
      "title": "Entry & Setup",
      "color": "#4589ff",
      "position_x": 48,
      "position_y": 136,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "set-window-size-1"
        ]
      }
    },
    {
      "id": "group-load",
      "element_type": "group",
      "title": "Page Load",
      "color": "#08bdba",
      "position_x": 408,
      "position_y": 136,
      "width": 1400,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "navigate-1",
          "wait-for-page-load-1",
          "wait-for-element-1"
        ]
      }
    },
    {
      "id": "group-interaction",
      "element_type": "group",
      "title": "Interaction",
      "color": "#a56eff",
      "position_x": 1128,
      "position_y": 136,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "inject-javascript-1"
        ]
      }
    },
    {
      "id": "group-extract",
      "element_type": "group",
      "title": "Data Extraction",
      "color": "#42be65",
      "position_x": 1848,
      "position_y": 136,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "structured-export-1"
        ]
      }
    },
    {
      "id": "group-control",
      "element_type": "group",
      "title": "Control Flow",
      "color": "#8d8d8d",
      "position_x": 2208,
      "position_y": 136,
      "width": 380,
      "height": 296,
      "z_index": 20,
      "data": {
        "memberBlockIds": [
          "end-1"
        ]
      }
    },
    {
      "id": "note-overview",
      "element_type": "note",
      "title": "Overview",
      "content": "Best-effort Reddit Post Scraper by Keywords equivalent to the Octoparse template. The intended target is Reddit keyword search for \"Octoparse\", exporting keyword, subreddit, title, author, post_time, upvotes, comments, and post_url. During analysis and autonomous execution, Reddit returned network-security / HTTP 403 blocks for old.reddit.com, www.reddit.com media, and live extraction paths. Because Reddit is blocking automated access in this environment, this template renders and exports the Reddit preview rows supplied by the Octoparse catalog entry as a fallback. For live multi-page scraping, run with compliant Reddit access, a logged-in browser profile, or approved/proxied access, then replace the fallback renderer with a live Reddit search/API pagination step.",
      "color": "#f1c21b",
      "position_x": 80,
      "position_y": 20,
      "width": 480,
      "height": 160,
      "z_index": 22,
      "data": {}
    },
    {
      "id": "note-block-inject-javascript-1",
      "element_type": "note",
      "title": "Note: Inject JavaScript",
      "content": "Runs custom JavaScript in the page: `const rows = [{keyword:'Octoparse',subreddit:'r/webscraping',title:'Octoparse is a scam',author:'can...` Verify in browser if results are empty.",
      "color": "#ee5396",
      "position_x": 1400,
      "position_y": 220,
      "width": 340,
      "height": 140,
      "z_index": 22,
      "data": {
        "block_id": "inject-javascript-1"
      }
    },
    {
      "id": "note-block-structured-export-1",
      "element_type": "note",
      "title": "Note: Structured Export",
      "content": "Extracts rows matching `#uscraper-results .reddit-post-row`. Confirm row count > 0 before running at scale.",
      "color": "#ee5396",
      "position_x": 2120,
      "position_y": 220,
      "width": 340,
      "height": 115,
      "z_index": 22,
      "data": {
        "block_id": "structured-export-1"
      }
    }
  ]
}