惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Help Net Security
Help Net Security
A
About on SuperTechFans
博客园_首页
M
MIT News - Artificial intelligence
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
量子位
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
L
LINUX DO - 最新话题
The GitHub Blog
The GitHub Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
S
Security @ Cisco Blogs
A
Arctic Wolf
V
Vulnerabilities – Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Heimdal Security Blog
H
Hacker News: Front Page
Simon Willison's Weblog
Simon Willison's Weblog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
N
Netflix TechBlog - Medium
SecWiki News
SecWiki News
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
MyScale Blog
MyScale Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News
AI
AI
L
LINUX DO - 热门话题
G
Google Developers Blog
P
Proofpoint News Feed
腾讯CDC
Schneier on Security
Schneier on Security
美团技术团队
V
V2EX
PCI Perspectives
PCI Perspectives
L
Lohrmann on Cybersecurity
Jina AI
Jina AI
博客园 - 司徒正美

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
How to Scrape Swedish Real Estate Data from Hemnet (No Code, No API)
MAYNO · 2026-04-30 · via DEV Community

Extract property listings, prices, agent contacts, and more from Sweden's #1 real estate platform in minutes.

If you've ever tried to get structured data from Hemnet.se — Sweden's dominant real estate marketplace with over 90% market share — you've probably hit the same wall: there is no official Hemnet API.

No developer portal. No API keys. No documentation.

Yet investors, PropTech startups, market researchers, and real estate agencies all need this data. They need prices, addresses, agent contacts, property sizes, and viewing dates — at scale, in a format they can actually work with.

This article shows you exactly how to get it.


What Is Hemnet?

Hemnet is Sweden's largest real estate platform. If a property is for sale in Sweden, it's almost certainly listed on Hemnet. That near-total market dominance makes it the single most valuable source of Swedish housing market data.

A typical listing includes:

  • Property details: type (Villa, Lägenhet, Radhus), rooms, living area (m²), land area, year built, floor
  • Location: address, neighborhood, city (kommun), county (län), distance to coast
  • Financial data: asking price (SEK), price per m², monthly fee (Avgift), annual running costs
  • Agent information: agent name, agency, phone number, email
  • Media: property images, full description, upcoming viewing dates

The problem is that none of this is accessible through an API. Hemnet is a consumer-facing website — not a data platform. To extract this data programmatically, you need a scraper.


Why Not Just Write Your Own Scraper?

You could. But there are real challenges:

Bot detection. Hemnet uses anti-bot protection. A naive scraper will get blocked within minutes. Handling this properly requires proxy rotation, realistic browser headers, and rate limiting — all of which add significant complexity.

Maintenance. When Hemnet updates their site (which they do), your scraper breaks. You're now on the hook for keeping it working.

Infrastructure. Running scrapers at scale requires servers, scheduling, monitoring, and storage. That's a project in itself.

For most use cases — market research, investment analysis, lead generation, building a product — the better approach is to use a pre-built, maintained scraper that handles all of this for you.


The Solution: Hemnet Scraper on Apify

Apify is a web scraping and automation platform that hosts thousands of pre-built scrapers called "Actors." The Hemnet Scraper actor extracts property listings from Hemnet.se with no code, no infrastructure, and no maintenance on your end.

Actor link: apify.com/mayno/hemnet-scraper

Here's what you get per listing:

{
  "id": "21538498",
  "url": "https://www.hemnet.se/bostad/lagenhet-3rum-...",
  "scraped_at": "2026-04-28T18:30:00.000Z",

  "location": {
    "address": "Karlslundsvägen 15",
    "neighborhood": "Barkarbystaden",
    "city": "Järfälla kommun",
    "county": "Stockholms län",
    "distance_to_coast_m": null
  },

  "property_details": {
    "title": "Lägenhet i Barkarbystaden",
    "type": "Lägenhet",
    "tenure": "Bostadsrätt",
    "rooms": 3,
    "living_area_sqm": 74,
    "year_built": 2021,
    "amenities": ["Balkong", "Fiber", "Hiss"]
  },

  "financials": {
    "asking_price_sek": 3250000,
    "price_per_sqm": 43919,
    "monthly_fee_sek": 4200
  },

  "agent": {
    "name": "Anna Lindström",
    "agency": "Fastighetsbyrån",
    "phone": "+46-8-123-4567",
    "email": "anna.lindstrom@fastighetsbyran.se"
  },

  "content": {
    "description": "Nyproducerad lägenhet i populära Barkarbystaden...",
    "viewing_dates": ["2026-05-03 11:00", "2026-05-05 14:00"],
    "images": ["https://bilder.hemnet.se/..."]
  }
}

Enter fullscreen mode Exit fullscreen mode

30+ fields per property. Clean, structured JSON. Ready to import into Excel, Airtable, a database, or your own application.


How to Use It (Step by Step)

Step 1: Create a free Apify account

Go to apify.com and sign up. The free plan includes $5 in monthly credits — enough to scrape roughly 2,500 properties at no cost.

Step 2: Open the Hemnet Scraper

Navigate to apify.com/mayno/hemnet-scraper and click "Try for free".

Step 3: Choose your scraping mode

The actor supports two modes:

Mode 1: Search URL (recommended for bulk scraping)

This is the most powerful option. Go to Hemnet.se, apply your filters (location, property type, price range, etc.), and copy the URL from your browser. Paste it into the scraper.

For example, to scrape all villas in Stockholm:

https://www.hemnet.se/bostader?item_types[]=villa&location_ids[]=17744

Enter fullscreen mode Exit fullscreen mode

Set Maximum Pages to control how many result pages to scrape. Each page contains approximately 50 properties. Setting it to 5 gives you ~250 properties.

Mode 2: Direct Property URLs

If you have specific listings you want to track, paste their URLs directly:

https://www.hemnet.se/bostad/lagenhet-3rum-barkarbystaden-jarfalla-kommun-karlslundsvagen-15-21538498

Enter fullscreen mode Exit fullscreen mode

This is ideal for monitoring specific properties over time or tracking price changes on a watchlist.

Step 4: Run the scraper

Click "Start". The scraper typically processes 50–100 properties per minute. A run of 250 properties takes about 3–4 minutes and costs roughly $0.50.

You'll see results appearing in real time in the Output tab.

Step 5: Export your data

Once complete, export your data in any format:

  • JSON — for developers and APIs
  • CSV — for Excel, Google Sheets, or data analysis tools
  • Excel (.xlsx) — pre-formatted spreadsheet
  • HTML Table — for quick web viewing

Real-World Use Cases

1. Real estate market analysis

Scrape a city or region periodically to track price trends over time. Compare asking prices across neighborhoods, property types, or years of construction. Identify where prices are rising or falling before the mainstream data catches up.

Example workflow:

  • Weekly scheduled scrape of Stockholm apartments
  • Import into Google Sheets via Apify's Google Sheets integration
  • Build a chart tracking median price per m² over time

2. Investment opportunity identification

Set up a daily scrape of specific search criteria — undervalued properties, specific neighborhoods, below-market prices for a given size. Get alerts when new listings appear matching your investment criteria.

Example workflow:

  • Daily scrape of Gothenburg villas under 4M SEK with 5+ rooms
  • Send results to Airtable
  • Use Airtable automations to alert you on new matches

3. Agent lead generation

The scraper extracts agent name, agency, phone, and email for every listing. If you offer services to Swedish real estate agents — photography, moving companies, renovation, mortgage brokering — this data is a direct pipeline to your audience.

Important note on GDPR: Agent contact information is publicly listed by agents themselves on Hemnet. However, if you use this data for outreach, ensure your use case complies with GDPR and Swedish data protection law. Use it responsibly.

4. Automated property valuation

Build a valuation model using scraped data. With price, size, location, year built, and amenities all structured, you have everything you need to train a price prediction model or build a comparative market analysis tool.

5. Academic and journalistic research

Sweden's housing affordability is a significant political topic. Researchers at Swedish universities (KTH, Stockholm University, Chalmers) can use this data to study price trends, geographic disparities, and housing supply across municipalities — without manually collecting data.


Scheduling and Automation

One of Apify's most powerful features is scheduling. You can set the Hemnet Scraper to run automatically:

  • Daily — for monitoring active listings
  • Weekly — for market trend tracking
  • Monthly — for long-term analysis datasets

Combined with Apify's integrations, you can build fully automated pipelines:

Trigger Action
New listings scraped → Push to Google Sheets
Price drops detected → Send Slack notification
Weekly scrape complete → Email CSV to your team
New agent contacts found → Add to Airtable CRM

Set it up once, and your Swedish real estate dataset updates itself automatically.


Connecting via API

If you're building an application or want to trigger scrapes programmatically, Apify provides a REST API. You can start runs, check status, and retrieve results with a simple HTTP call:

// Trigger a scrape via Apify API
const response = await fetch(
  'https://api.apify.com/v2/acts/mayno~hemnet-scraper/runs',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${YOUR_API_TOKEN}`
    },
    body: JSON.stringify({
      searchUrl: 'https://www.hemnet.se/bostader?location_ids[]=17744',
      maxPages: 3
    })
  }
);

Enter fullscreen mode Exit fullscreen mode

This makes it straightforward to integrate Hemnet data into your own product — a dashboard, a mobile app, a CRM, or an automated reporting tool.


What Data Can You Extract?

Here's the complete field reference:

Root fields

Field Type Description
id String Unique Hemnet property ID
url String Full listing URL
scraped_at ISO 8601 Timestamp of scrape

Location

Field Description
address Street address
neighborhood Area/district name
city Municipality (kommun)
county County (län)
distance_to_coast_m Distance to nearest coast in meters

Property Details

Field Description
type Villa, Lägenhet, Radhus, Kedjehus, etc.
tenure Äganderätt, Bostadsrätt, or Hyresrätt
rooms Number of rooms (e.g., 3.5)
living_area_sqm Heated living space (Boarea)
supplemental_area_sqm Secondary space (Biarea)
land_area_sqm Plot area (for Villa/Radhus)
year_built Construction year
floor Floor position (e.g., "2/4")
amenities Array: Balkong, Garage, Fiber, etc.
is_new_construction Boolean

Financials

Field Description
asking_price_sek Listed price in SEK
price_per_sqm SEK per m² of living area
monthly_fee_sek Monthly Avgift (Bostadsrätt only)
running_costs_year_sek Annual Driftskostnad (Villa/Radhus)

Agent

Field Description
name Agent full name
agency Agency name
phone Swedish phone number
email Agent email

Content

Field Description
description Full listing text
viewing_dates Upcoming visning dates
images Array of high-resolution image URLs

Frequently Asked Questions

Do I need a Hemnet account?
No. The scraper accesses only publicly visible listing data, which requires no login.

How do I get a search URL?
Go to Hemnet.se, apply your filters (location, price, property type), and copy the URL from your browser's address bar. Paste it directly into the scraper.

Can I scrape multiple cities in one run?
Yes — Hemnet supports multiple location IDs in a single search URL. For example:

https://www.hemnet.se/bostader?location_ids[]=17744&location_ids[]=17755

Enter fullscreen mode Exit fullscreen mode

What happens if Hemnet changes their site?
The actor is actively maintained. If Hemnet updates their page structure and the scraper breaks, it will be fixed and a new version deployed — typically within 48 hours of detection.

Can I run this on a schedule?
Yes. Apify has built-in scheduling. Set it to run daily, weekly, or at any custom interval from the actor's Settings tab.


Summary

Manual scraping Hemnet Scraper on Apify
Setup time Days to weeks 2 minutes
Maintenance Your responsibility Handled for you
Bot detection You figure it out Built-in proxy rotation
Cost Server + dev time From $2.00 per 1,000 results
Scheduling Build it yourself One-click
Export formats Whatever you code JSON, CSV, Excel, HTML

If you need Swedish real estate data and don't want to spend weeks building and maintaining a scraper, the Hemnet Scraper on Apify is the most direct path to clean, structured data.

→ Try it free: apify.com/mayno/hemnet-scraper


About the Author

I build data extraction tools and automation actors on Apify. My scrapers help investors, researchers, and developers access structured data from platforms that don't offer official APIs.

Follow me on X: @Amine_Fer
Apify profile: apify.com/mayno


This article was written as part of the
Bright Data Dev.to challenge on web scraping.