Weather Data Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
Weather Data Scraper (Cheap)
Extract comprehensive current weather conditions, 24-48h hourly forecasts, 8-15d daily forecasts, and EPA air quality indices from Weather.com by location name, zip code, or URL. Features premium proxy bypass.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Weather Data Scraper

Checking a forecast by hand is fine for one city. It falls apart the moment you need fifty, or you want the numbers in a spreadsheet instead of a webpage you have to read with your eyes. This scraper reads Weather.com for you: give it a place name, a Weather.com place code, or a forecast URL and it returns the live conditions, the air quality reading, an hour-by-hour outlook, and a ten-to-fifteen-day forecast as clean structured fields. Pass one place or a long list, anywhere on the map.
What you get
Every place you feed in comes back as one row with a steady shape, so loading the results into a sheet or database stays predictable. Each row carries:
- Location —
queryInput,placeCode,sourceUrl,placeName,geoLat,geoLng, and acollectedAttimestamp - Live conditions — temperature, feels-like, humidity, wind speed and direction, gusts, UV index, visibility, pressure, dew point, and a plain-language weather phrase, all under
liveConditions - Air quality — the AQI value, its category, the lead pollutant, and any advisory text under
airQualityReport - Hourly outlook — temperature, precipitation chance and type, humidity, wind, and UV for each upcoming hour under
hourlyOutlook - Daily outlook — day and night highs, lows, rain chances, wind, humidity, sunrise, sunset, and moon phase under
dailyOutlook
Quick start
- Click Try for free and open the input form.
- Add your places: type city or region names into Place names, or paste Place codes or full Forecast page URLs if you already have them.
- Set a Results limit to cap the run, and raise Request timeout if responses come back slow.
- Press Start, then export the results as JSON, CSV, Excel, or XML once the run finishes.

Use cases
- Logistics and field teams — pull daily forecasts for every route or job site in one pass and plan around rain, heat, or wind
- Energy and demand modeling — feed temperature and humidity readings into load forecasts
- Agriculture — track precipitation chance, UV, and daily highs across several growing regions
- Travel and events — compare hourly and daily outlooks for a handful of destinations side by side
- Air-quality monitoring — watch AQI values and lead pollutants across a list of cities
- Research and dashboards — collect a consistent weather feed for a set of locations without managing an API key
Input
| Field | Type | Required | Description |
|---|---|---|---|
placeQueries | array of strings | One of placeQueries, placeCodes, or pageUrls | City, county, or region names. The scraper resolves each to a Weather.com place on its own. Prefill: Austin, TX, Reykjavik. |
placeCodes | array of strings | One of placeQueries, placeCodes, or pageUrls | Raw Weather.com place IDs when you already have them. Skips the lookup step. |
pageUrls | array of strings | One of placeQueries, placeCodes, or pageUrls | Full Weather.com forecast URLs to read directly. |
resultsLimit | integer | No | Cap on how many places to read per run. Default 500. |
timeoutSeconds | integer | No | Seconds to wait on each request before giving up. Default 45. |
Example input
{"placeQueries": ["Austin, TX", "Reykjavik"],"placeCodes": [],"pageUrls": [],"resultsLimit": 500,"timeoutSeconds": 45}
Output
Each place you supply produces one row. Nested fields hold the matching readings, and values that Weather.com does not publish for a given place come back as null, so your dataset stays rectangular.
Example output
{"queryInput": "Austin, TX","placeCode": "f370fc9f1e5d07401a72fab32be4e1abe8f8f9df412cbaef3110e44cbf45cc56","sourceUrl": "https://weather.com/weather/today/l/f370fc9f1e5d07401a72fab32be4e1abe8f8f9df412cbaef3110e44cbf45cc56","placeName": "Austin, TX","geoLat": 30.27,"geoLng": -97.74,"collectedAt": "2026-06-30T14:00:00.000000Z","liveConditions": {"temperature": 91,"feelsLike": 97,"temperatureMaxSinceMidnight": 93,"temperatureMinSinceMidnight": 74,"humidity": 48,"windSpeed": 9,"windGust": null,"windDirection": 160,"windDirectionCardinal": "SSE","uvIndex": 8,"uvCategory": "Very High","visibility": 10.0,"pressure": 29.92,"pressureTendency": "Falling","dewPoint": 68,"weatherPhrase": "Partly Cloudy","relativeHumidity": 48},"airQualityReport": {"aqiValue": 42,"aqiCategory": "Good","primaryPollutant": "Ozone","advisoryMessage": "Air quality is satisfactory and poses little or no risk."},"hourlyOutlook": [{"time": "2026-06-30T15:00:00-0500","epochTime": 1782849600,"temperature": 92,"feelsLike": 98,"weatherPhrase": "Sunny","precipChance": 5,"precipType": "rain","humidity": 45,"windSpeed": 10,"windDirectionCardinal": "S","uvIndex": 7}],"dailyOutlook": [{"dayOfWeek": "Tuesday","date": "2026-06-30T07:00:00-0500","epochTime": 1782820800,"temperatureMax": 94,"temperatureMin": 73,"weatherPhraseDay": "Sunny","weatherPhraseNight": "Clear","precipChanceDay": 10,"precipChanceNight": 0,"windSpeedDay": 10,"windSpeedNight": 7,"humidityDay": 46,"humidityNight": 62,"sunrise": "2026-06-30T06:31:00-0500","sunset": "2026-06-30T20:36:00-0500","moonPhase": "Waxing Gibbous"}]}
Output fields
| Field | Type | Description |
|---|---|---|
queryInput | string | The place name, code, or URL you supplied for this row |
placeCode | string | Weather.com place ID resolved for the location |
sourceUrl | string | Weather.com forecast page that was read |
placeName | string | Display name of the resolved location |
geoLat | number | Latitude of the place |
geoLng | number | Longitude of the place |
collectedAt | string | ISO timestamp of when the row was captured |
liveConditions | object | Current readings: temperature, feels-like, humidity, wind, UV, visibility, pressure, dew point, and weather phrase |
airQualityReport | object | AQI value, category, lead pollutant, and advisory text |
hourlyOutlook | array | Per-hour forecast with temperature, precipitation, humidity, wind, and UV |
dailyOutlook | array | Per-day forecast with highs, lows, rain chance, wind, humidity, sunrise, sunset, and moon phase |
Tips for best results
- Start with a couple of places. Run two or three before a big batch so any URL-format or lookup issues show up early.
- Use place codes for exact matches. A name like "Springfield" can resolve to the wrong city; a
placeCodeorpageUrlpins it down. - Keep test runs small with
resultsLimit. Hold it low while you confirm the output fits your pipeline, then raise it for the full list. - Raise
timeoutSecondsto around 60 if you see requests timing out on slower connections. - Expect some
nullvalues. Air quality, gusts, and parts of the long-range forecast are not published for every place, so those fields can be empty.
How can I use Weather.com weather data?
How can I use the Weather Data Scraper to pull forecasts for many cities at once?
Drop a list of city names into placeQueries (or codes into placeCodes) and the scraper returns one row per place, each holding live conditions, air quality, and the hourly and daily outlooks. Export the whole set to CSV or Excel and you have a side-by-side weather table without copying anything from a webpage.
How can I get Weather.com data without signing up for a weather API?
Paste a forecast URL or a place name and run the actor. It reads the public Weather.com forecast page and hands back structured fields: temperature, humidity, wind, UV, AQI, and multi-day outlooks. You skip API keys, rate plans, and quota dashboards. Set resultsLimit to control how much you scrape and you pay only for the rows you collect.
How can I track air quality across several locations?
Feed in the places you care about and read the airQualityReport field on each row: the AQI value, its category, the main pollutant, and any advisory message. Re-run the actor on a schedule and you build a running air-quality log across every city on your list.
How can I add a weather feed to a dashboard or report? Run the scraper for a fixed set of places and connect the dataset to your dashboard or BI tool. Because the field shape stays the same, temperature, precipitation chance, and conditions line up identically on every refresh, so your charts and tables keep working as the numbers update.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.