Weather Data Scraper (Cheap) avatar

Weather Data Scraper (Cheap)

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Weather Data Scraper (Cheap)

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

Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Weather Data Scraper

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:

  • LocationqueryInput, placeCode, sourceUrl, placeName, geoLat, geoLng, and a collectedAt timestamp
  • 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

  1. Click Try for free and open the input form.
  2. 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.
  3. Set a Results limit to cap the run, and raise Request timeout if responses come back slow.
  4. Press Start, then export the results as JSON, CSV, Excel, or XML once the run finishes.

How it works

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

FieldTypeRequiredDescription
placeQueriesarray of stringsOne of placeQueries, placeCodes, or pageUrlsCity, county, or region names. The scraper resolves each to a Weather.com place on its own. Prefill: Austin, TX, Reykjavik.
placeCodesarray of stringsOne of placeQueries, placeCodes, or pageUrlsRaw Weather.com place IDs when you already have them. Skips the lookup step.
pageUrlsarray of stringsOne of placeQueries, placeCodes, or pageUrlsFull Weather.com forecast URLs to read directly.
resultsLimitintegerNoCap on how many places to read per run. Default 500.
timeoutSecondsintegerNoSeconds 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

FieldTypeDescription
queryInputstringThe place name, code, or URL you supplied for this row
placeCodestringWeather.com place ID resolved for the location
sourceUrlstringWeather.com forecast page that was read
placeNamestringDisplay name of the resolved location
geoLatnumberLatitude of the place
geoLngnumberLongitude of the place
collectedAtstringISO timestamp of when the row was captured
liveConditionsobjectCurrent readings: temperature, feels-like, humidity, wind, UV, visibility, pressure, dew point, and weather phrase
airQualityReportobjectAQI value, category, lead pollutant, and advisory text
hourlyOutlookarrayPer-hour forecast with temperature, precipitation, humidity, wind, and UV
dailyOutlookarrayPer-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 placeCode or pageUrl pins 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 timeoutSeconds to around 60 if you see requests timing out on slower connections.
  • Expect some null values. 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.

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.