<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: mhloo</title>
    <description>The latest articles on DEV Community by mhloo (@mhloo).</description>
    <link>https://dev.to/mhloo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3477325%2F9d9b04e1-be3b-4ac8-9121-d22e090a6fce.png</url>
      <title>DEV Community: mhloo</title>
      <link>https://dev.to/mhloo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mhloo"/>
    <language>en</language>
    <item>
      <title>Facebook GraphQL Scraper — Open-Source, Lightweight, No Headless Browser</title>
      <dc:creator>mhloo</dc:creator>
      <pubDate>Mon, 12 Oct 2026 16:32:21 +0000</pubDate>
      <link>https://dev.to/mhloo/facebook-graphql-scraper-open-source-lightweight-no-headless-browser-4c17</link>
      <guid>https://dev.to/mhloo/facebook-graphql-scraper-open-source-lightweight-no-headless-browser-4c17</guid>
      <description>&lt;p&gt;🚀 &lt;strong&gt;I built an open-source Facebook GraphQL scraper — no API key required.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lot of free, open-source Facebook scrapers are outdated or no longer work reliably. I built &lt;strong&gt;&lt;a href="https://github.com/XD-MHLOO/facebook-gql-scraper" rel="noopener noreferrer"&gt;facebook-gql-scraper&lt;/a&gt;&lt;/strong&gt; to provide a lightweight alternative for developers who need to work with Facebook data.&lt;/p&gt;

&lt;p&gt;It supports scraping:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;👤 Profiles and user posts&lt;/li&gt;
&lt;li&gt;💬 Comments and reactions&lt;/li&gt;
&lt;li&gt;👥 Groups&lt;/li&gt;
&lt;li&gt;🛍️ Marketplace&lt;/li&gt;
&lt;li&gt;🔎 Search results&lt;/li&gt;
&lt;li&gt;📸 Photos, videos, and reels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;facebook-gql-scraper
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Get started:&lt;/p&gt;

&lt;p&gt;🔑 Export your Facebook cookies as JSON using Cookie-Editor (Firefox) or EditThisCookie (Chrome), then save as facebook_cookies.json.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;facebook_gql_scraper&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;fgs&lt;/span&gt;

&lt;span class="n"&gt;ctx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fgs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;FacebookContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cookies_file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;facebook_cookies.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fgs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Profile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_username&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Ishowspeed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;biography&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;birthday&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;post&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_posts&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to retrieve comments, reactions, photos, videos, or other supported data? There's more to explore.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/XD-MHLOO/facebook-gql-scraper" rel="noopener noreferrer"&gt;https://github.com/XD-MHLOO/facebook-gql-scraper&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's open source, and feedback, contributions are welcome!&lt;/p&gt;

&lt;p&gt;If you're working on Facebook data collection with Python, give it a try and let me know what you think.&lt;/p&gt;

</description>
      <category>webscraping</category>
      <category>opensource</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>mhloo</dc:creator>
      <pubDate>Thu, 04 Sep 2025 01:28:02 +0000</pubDate>
      <link>https://dev.to/mhloo/-fdl</link>
      <guid>https://dev.to/mhloo/-fdl</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fraqsdbpnydus831m7aso.png" height="150" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l" rel="noopener noreferrer" class="c-link"&gt;
            Not Just Scraping: OSINTGraph Turns Your Target’s Instagram Network into an Investigable Graph with an Integrated AI Agent - DEV Community
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            OSINTGraph — Mapping Instagram for OSINT Investigations   What is OSINT? OSINT (aka Open...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" width="300" height="299"&gt;
          dev.to
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>#instagram #ai #osint #agent</title>
      <dc:creator>mhloo</dc:creator>
      <pubDate>Wed, 03 Sep 2025 17:08:03 +0000</pubDate>
      <link>https://dev.to/mhloo/instagram-ai-osint-agent-fal</link>
      <guid>https://dev.to/mhloo/instagram-ai-osint-agent-fal</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fraqsdbpnydus831m7aso.png" height="150" class="m-0" width="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l" rel="noopener noreferrer" class="c-link"&gt;
            Not Just Scraping: OSINTGraph Turns Your Target’s Instagram Network into an Investigable Graph with an Integrated AI Agent - DEV Community
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            OSINTGraph — Mapping Instagram for OSINT Investigations   What is OSINT? OSINT (aka Open...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png" width="300" height="299"&gt;
          dev.to
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Not Just Scraping: OSINTGraph Turns Your Target’s Instagram Network into an Investigable Graph with an Integrated AI Agent</title>
      <dc:creator>mhloo</dc:creator>
      <pubDate>Wed, 03 Sep 2025 16:58:54 +0000</pubDate>
      <link>https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l</link>
      <guid>https://dev.to/mhloo/not-just-scraping-osintgraph-turns-your-targets-instagram-network-into-an-investigable-graph-with-241l</guid>
      <description>&lt;h3&gt;
  
  
  OSINTGraph — Mapping Instagram for OSINT Investigations
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is OSINT?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;OSINT (aka Open Source Intelligence)&lt;/strong&gt; is about using public information for investigations, analyzing it, and making decisions based on data available in public sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most of us scroll Instagram daily&lt;/strong&gt; — posting photos, liking memes, dropping a quick comment. It feels casual, but every like, follow, and reply leaves a trail. Put all these together, those trails become a very detailed picture of your habits, interests, and connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OSINTGraph&lt;/strong&gt;, a Python command line tool for OSINT, targets a person's Instagram Network by gathering all Instagram data and maps it visually into a &lt;strong&gt;graph database&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/user-attachments/assets/71a6c81c-655e-4831-83e8-585e9d270b5a" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y4glionk2x6anb7scrm.png" alt="Neo4j Overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;^^^Click the video to view&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nodes&lt;/strong&gt; = profiles, posts, comments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relationships&lt;/strong&gt; = follows, likes, replies, comments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this, you can see at a glance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who follows mutually with your target&lt;/li&gt;
&lt;li&gt;What post does your target commented on the most?&lt;/li&gt;
&lt;li&gt;What are all the public interactions between your target and another person? (commented on each other post? have shared followers? frequent replying on each comment?)&lt;/li&gt;
&lt;li&gt;What kind of post your target interacts with most?&lt;/li&gt;
&lt;li&gt;... etc.&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;
  
  
  How it Works
&lt;/h4&gt;

&lt;p&gt;OSINTGraph use a very simple reconnaissance methodology to gather relevant data on your target.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;osintgraph discover&lt;/code&gt;&lt;/strong&gt; → gathers all of a target account’s public Instagram data (profile, followers, followees, posts, comments, likes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;osintgraph explore&lt;/code&gt;&lt;/strong&gt; → digs deeper by gathering all the target’s &lt;strong&gt;followee accounts&lt;/strong&gt;. Why? Because followees often reveal interests, communities, or organizations the target connects to (friends, work, school, hobbies, etc.). This builds a wider, richer picture.&lt;/li&gt;
&lt;li&gt;Everything is stored in a &lt;strong&gt;Neo4j graph database&lt;/strong&gt;, where you can query and visualize connections.&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;
  
  
  AI-Powered Analysis
&lt;/h4&gt;


&lt;div class="ltag_asciinema"&gt;
  
&lt;/div&gt;


&lt;p&gt;Looking at a huge graph is useful, but analysis can still be overwhelming. That’s why OSINTGraph integrates an &lt;strong&gt;AI agent&lt;/strong&gt; with the command:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;osintgraph agent&lt;/code&gt;&lt;/strong&gt; → The agent knows your graph. You can ask it questions in plain English, like:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;“Find all comments &lt;a class="mentioned-user" href="https://dev.to/john_doe"&gt;@john_doe&lt;/a&gt; made about ‘party’.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent searches through your graph and shows the answer that matters to you without you manually reading hundreds of comments.&lt;/p&gt;

&lt;p&gt;For more advanced investigations, OSINTGraph supports &lt;strong&gt;templates&lt;/strong&gt;. Templates let you design custom AI “brains” using system prompts to analyze data however you need — finding clues, generating insights, summarizing accounts, or running any kind of investigation logic you want.&lt;/p&gt;

&lt;p&gt;That’s the simplified explanation of the tool. If you’re interested in more, I recommend checking out the GitHub. Everything is built primarily using free services, so it’s accessible to anyone. (Of course, you’ll need a dummy Instagram account to start — preferably not your main one!).&lt;/p&gt;

&lt;p&gt;OSINTGraph is both a tool for investigators &lt;strong&gt;and a reminder&lt;/strong&gt; to be mindful about what we share online.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/XD-MHLOO/Osintgraph" rel="noopener noreferrer"&gt;OSINTGraph on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
