SYSTEM all green source publico.pt queue 12,943 URLs p99 latency 312ms dataflirt.com · scraper/publico-pt
RUN . 14 active pipelines . publico.pt live

Portuguese media data,
normalised at scale.

We extract article bodies, author profiles, publication timestamps, and section metadata from publico.pt. Delivered as clean JSON, CSV, or Parquet to S3 or PostgreSQL on your scheduled cadence.

Articles extracted
4.2K /day
Authors mapped
850 /run
Opinion pieces
1.1K /24h
Active pipelines
14
Uptime
99.98%
Data Dictionary

Every field we extract from publico.pt

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Articles objects from publico.pt. All fields typed and schema-versioned.

urltitlesubtitleauthorpublish_dateupdate_datesectionbody_textpaywall_statustags
articles
● 200 OK
"url": "https://www.publico.pt/2026/05/12/politica/noticia/exemplo-artigo-123456",
"title": "Novo pacote legislativo aprovado no Parlamento",
"author": "Maria João",
"publish_date": "2026-05-12T14:30:00Z",
"section": "Política",
"paywall_status": "premium",
"tags": "['Parlamento', 'Legislação', 'Governo']"
# urltitlesubtitleauthorpublish_dateupdate_date
1
2
3

Complete list of extractable fields for Authors objects from publico.pt. All fields typed and schema-versioned.

author_idnameprofile_urlrolebioarticle_counttwitter_handlerecent_articles
authors
● 200 OK
"author_id": "maria-joao-789",
"name": "Maria João",
"profile_url": "https://www.publico.pt/autor/maria-joao",
"role": "Jornalista",
"article_count": 412,
"twitter_handle": "@mariajoaopt"
# author_idnameprofile_urlrolebioarticle_count
1
2
3

Complete list of extractable fields for Topics & Tags objects from publico.pt. All fields typed and schema-versioned.

tag_idnameurlarticle_countrelated_tagstrending_statuscategorylast_updated
topics_& tags
● 200 OK
"tag_id": "t-parlamento",
"name": "Parlamento",
"url": "https://www.publico.pt/parlamento",
"article_count": 8942,
"category": "Política",
"last_updated": "2026-05-12T15:00:00Z"
# tag_idnameurlarticle_countrelated_tagstrending_status
1
2
3

Complete list of extractable fields for Comments & Engagement objects from publico.pt. All fields typed and schema-versioned.

article_urlcomment_countshare_counttop_commenttop_commenterengagement_scorediscussion_statusscraped_at
comments_& engagement
● 200 OK
"article_url": "https://www.publico.pt/2026/05/12/politica/noticia/exemplo-artigo-123456",
"comment_count": 145,
"share_count": 320,
"engagement_score": 8.4,
"discussion_status": "open",
"scraped_at": "2026-05-12T16:45:12Z"
# article_urlcomment_countshare_counttop_commenttop_commenterengagement_score
1
2
3

Complete list of extractable fields for Multimedia objects from publico.pt. All fields typed and schema-versioned.

article_urlmain_image_urlimage_captionimage_creditvideo_urlpodcast_linkgallery_countmedia_type
multimedia
● 200 OK
"article_url": "https://www.publico.pt/2026/05/12/politica/noticia/exemplo-artigo-123456",
"main_image_url": "https://imagens.publico.pt/imagens.aspx/123456",
"image_caption": "Sessão plenária na Assembleia da República",
"image_credit": "Lusa / António Silva",
"gallery_count": 4,
"media_type": "image_gallery"
# article_urlmain_image_urlimage_captionimage_creditvideo_urlpodcast_link
1
2
3

Capabilities

Complete extraction of the Portuguese news cycle

Our publico.pt scraper captures the full editorial output: standard articles, opinion pieces, P3 youth content, and Ípsilon culture reviews. We handle infinite scroll pagination and article template variations.

Full Article Extraction

Extract headline, subtitle, body text, publication date, and update timestamps across all news sections.

Author Mapping

Capture journalist names, contributor roles, and profile URLs to track editorial output per author.

Section Categorisation

Distinguish between standard news, opinion columns, P3, and Ípsilon content with strict schema mapping.

Paywall Detection

Identify and flag Premium articles versus open-access content to maintain dataset consistency.

Metadata & SEO Tags

Extract native tagging, keywords, and related topics to understand editorial categorisation.

Multimedia Links

Capture main image URLs, captions, photo credits, and embedded video or podcast links.

Comment Volume Tracking

Monitor discussion activity by extracting total comment counts and engagement metrics per article.

Portuguese NLP Ready

Text is delivered clean, stripped of HTML boilerplate, and UTF-8 encoded for immediate ingestion into language models.

Scheduled Crawls

Configure hourly sweeps of the homepage and section fronts to capture breaking news as it publishes.

// engagement pipeline

From section URLs to warehouse records

Brief in. Clean data out.

Define Scope
d 0

Specify target sections, authors, or date ranges. We map the required data fields to your schema.

Pipeline Build
d 2–4

We deploy Scrapy and Playwright spiders configured to handle publico.pt pagination and layout variations.

Validation & QA
d 4–6

We verify text cleanliness, date parsing accuracy, and proper handling of Premium article truncations.

Delivery
ongoing

Clean JSON or Parquet files pushed directly to your S3 bucket or PostgreSQL database.

Under the hood

Handling news site scraping complexity

News platforms present unique extraction challenges including dynamic loading, varied article templates, and strict anti-bot measures.

pipeline-monitor · publico.pt · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
Dynamic loading
Infinite scroll pagination via Playwright

Category pages and author feeds on publico.pt rely on infinite scroll. We use Playwright to simulate user scrolling, triggering subsequent API calls and rendering full article lists without missing historical entries.

Template variation
Fallback chains for diverse layouts

Longform features, opinion pieces, and standard news articles use different DOM structures. Our selectors employ multi-layer fallback chains to ensure consistent data extraction regardless of the editorial layout.

Paywall handling
Strict state management for Premium content

Publico.pt truncates body text for Premium articles when viewed without an active subscription. We detect the paywall state and flag the record, preventing truncated text from contaminating your full-text corpus.

Anti-bot layer
Localised residential proxies

To prevent IP bans and rate limiting from media firewalls, we route requests through Portuguese residential proxies, mimicking legitimate domestic reader traffic.

Clean text extraction
Boilerplate removal and normalisation

We strip inline advertisements, newsletter sign-up widgets, and related-article injects from the body text, delivering a contiguous string of editorial content ready for NLP processing.

Applications

Who uses publico.pt data

Teams across industries use publico.pt data to build competitive products and smarter operations.

01
Media Monitoring

PR agencies and corporate communications teams track brand mentions, sentiment, and crisis developments across major Portuguese news outlets.

02
NLP & LLM Training

AI research teams ingest high-quality editorial Portuguese text to train language models and improve translation algorithms.

03
Political Analysis

Think tanks and researchers monitor opinion columns, editorial bias, and topic frequency during election cycles.

04
Competitor Intelligence

Other media organisations track publication velocity, author output, and section engagement to benchmark editorial performance.

05
Academic Research

Sociologists and linguists analyse long-term cultural trends and discourse evolution using historical article archives.

06
Trend Forecasting

Analysts track keyword frequency and tag associations in the P3 and Ípsilon sections to identify emerging cultural trends.

Why DataFlirt

"Publico.pt represents a critical corpus of Portuguese journalism, but extracting structured text across varied article templates requires dedicated infrastructure."

Media monitoring and LLM training require clean, structured text. We handle the infinite scrolls, paywall logic, and layout variations so your data science teams receive normalised JSON ready for ingestion.

Technical Spec

Publico.pt scraper technical specifications

Everything supported by our publico.pt scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

JavaScript rendering
Playwright execution required for infinite scroll and dynamic comment widgets
Supported
Residential proxies
Portuguese ISP-grade IPs to mimic domestic reader behaviour
Supported
Article body extraction
Full text extraction stripped of inline ads and newsletter prompts
Supported
Paywall status flag
Boolean indicator distinguishing free vs Premium articles
Supported
Infinite scroll pagination
Automated scrolling to capture complete category and author feeds
Supported
Change detection
Monitor update_date fields to capture post-publication editorial revisions
Supported
Webhook delivery
HTTP POST per article for real-time media monitoring alerts
Supported
Premium article full text
Extraction of full text behind the paywall without provided credentials
Partial
User account profiles
Extraction of private reader data, reading history, or saved articles
Partial
Infrastructure

Infrastructure powering the media pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Integration

Scrapy manages the broad crawl logic and deduplication, while Playwright handles infinite scroll and dynamic widget rendering on category pages.

Proxy Infrastructure

We maintain pools of Portuguese residential IPs, rotating them per request to avoid triggering media firewalls and rate limits.

Cloud-Native Orchestration

Pipelines run on AWS ECS with Airflow managing schedules. This ensures high availability for continuous news monitoring.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Nested schema ideal for document databases and NLP pipelines
CSV
Flat file format suitable for basic media monitoring dashboards
XLS
Excel compatible format for manual analyst review
Parquet
Columnar format for efficient querying in data lakes
AWS S3
Direct delivery to your cloud storage bucket
Webhook
Real-time HTTP POST for breaking news alerts
API
REST endpoints to query extracted article datasets
PostgreSQL
Direct database insertion with upsert logic for article updates
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About publico.pt scraping, legality, and pipeline operations.

Ask us directly →
Is scraping publico.pt legal?

Scraping publicly available news articles is generally permissible for non-consumptive uses like NLP training and media monitoring. DataFlirt extracts only public data and respects standard web scraping guidelines. We do not bypass authentication to steal Premium content. Clients must ensure their specific use case complies with copyright law and the publisher's terms of service.

How do you handle the publico.pt paywall?

Our standard pipeline extracts the publicly available text. For Premium articles, we extract the visible truncated text, metadata, and tags, and flag the record with a 'premium' status. We do not circumvent the paywall to extract gated text unless you provide valid enterprise credentials for authenticated scraping.

Can you extract historical archives?

Yes. We can configure a backfill pipeline to traverse category archives and search results to extract historical articles based on specific date ranges or keywords.

How fast can you deliver breaking news?

For time-sensitive media monitoring, we can configure pipelines to poll the homepage, RSS feeds, and main section URLs every 15 minutes, delivering new articles via Webhook immediately upon detection.

Do you capture article updates and corrections?

Yes. We monitor the 'update_date' metadata field. If an article is revised post-publication, our pipeline detects the change, extracts the updated text, and pushes a new version to your database.

What is the minimum engagement for a news pipeline?

Our minimum engagement typically starts with daily extraction of specific sections or keyword alerts. For full-site historical backfills, we price based on total article volume and compute requirements.

Can I get a sample dataset?

Yes. We provide a sample dataset of recent articles across different sections (Standard, Opinion, Premium) so your team can validate the text cleanliness and schema structure before committing.

$ dataflirt scope --new-project --source=publico.pt ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a historical archive export or a continuous daily feed of Portuguese news, we scope, build, and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in news and media

Services

Data Extraction for Every Industry

View All Services →