PHPackages                             2dareis2do/newspaper-playwright-wrapper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. 2dareis2do/newspaper-playwright-wrapper

ActiveLibrary[API Development](/categories/api)

2dareis2do/newspaper-playwright-wrapper
=======================================

PHP wrapper for Newspaper3/4k Article and Playwright scraping &amp; curation

2.0.0(1y ago)0138GPL-3.0-or-laterPythonPHP &gt;=7.0

Since Jun 11Pushed 1y ago1 watchersCompare

[ Source](https://github.com/2dareis2do/newspaper-playwright-wrapper)[ Packagist](https://packagist.org/packages/2dareis2do/newspaper-playwright-wrapper)[ Docs](https://github.com/2dareis2do/newspaper-playwright-wrapper)[ RSS](/packages/2dareis2do-newspaper-playwright-wrapper/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (8)Used By (0)

Newspaper Playwright Wrapper
============================

[](#newspaper-playwright-wrapper)

[![Software License](https://camo.githubusercontent.com/e1514dd3f2095dbf68a0008ae62a631142953ad2e86aa94c504343f2c2c191da/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Packagist Version](https://camo.githubusercontent.com/71134fddf8aa1326a5cc4070049ca276331f2ac079067d68f0c04a8f849cc9fe/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f3264617265697332646f2f6e6577737061706572336b2d7068702d777261707065722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/2dareis2do/newspaper3k-php-wrapper)

Simple php wrapper for Newspaper3/4k Article scraping and curation with Playwright support.

The combination of using Newspaper3/4k script with Playwright allows for the automated handling of cookies and other actions required by cookie compliance on a site by site basis.

Now you can also pass a third parameter to the scrape method. This allows you to override the included ArticleScraping.py on a site by site basis.

Update
------

[](#update)

2.0.0 introduces an additional parameter for a client to pass command parameter. This is useful where multiple versions of python (with respective dependencies) may be available on a single server. If no value is passed, it will default to the use the default python string. This supports both absolute or relative paths.

Install Necessary Packages
--------------------------

[](#install-necessary-packages)

```
pip install newspaper4k
pip install playwright
python -m playwright install
python -m playwright install-deps

```

Features
--------

[](#features)

- Multi-threaded article download framework
- News url identification
- Text extraction from html
- Top image extraction from html
- All image extraction from html
- Keyword extraction from text
- Summary extraction from text
- Author extraction from text
- Google trending terms extraction
- Works in 10+ languages (English, Chinese, German, Arabic, ...)

.. code-block:: pycon

```
>>> import newspaper
>>> newspaper.languages()

Your available languages are:
input code      full name

  ar              Arabic
  be              Belarusian
  bg              Bulgarian
  da              Danish
  de              German
  el              Greek
  en              English
  es              Spanish
  et              Estonian
  fa              Persian
  fi              Finnish
  fr              French
  he              Hebrew
  hi              Hindi
  hr              Croatian
  hu              Hungarian
  id              Indonesian
  it              Italian
  ja              Japanese
  ko              Korean
  lt              Lithuanian
  mk              Macedonian
  nb              Norwegian (Bokmål)
  nl              Dutch
  no              Norwegian
  pl              Polish
  pt              Portuguese
  ro              Romanian
  ru              Russian
  sl              Slovenian
  sr              Serbian
  sv              Swedish
  sw              Swahili
  th              Thai
  tr              Turkish
  uk              Ukrainian
  vi              Vietnamese
  zh              Chinese

```

Get it now
----------

[](#get-it-now)

Run ✅ `pip3 install newspaper3k` ✅

NOT ⛔ `pip3 install newspaper` ⛔

On python3 you must install `newspaper3k`, **not** `newspaper`. `newspaper` is our python2 library. Although installing newspaper is simple with `pip `\_, you will run into fixable issues if you are trying to install on ubuntu.

**If you are on Debian / Ubuntu**, install using the following:

- Install `pip3` command needed to install `newspaper3k` package::

    $ sudo apt-get install python3-pip
- Python development version, needed for Python.h::

    $ sudo apt-get install python-dev
- lxml requirements::

    $ sudo apt-get install libxml2-dev libxslt-dev
- For PIL to recognize .jpg images::

    $ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev

NOTE: If you find problem installing `libpng12-dev`, try installing `libpng-dev`.

- Download NLP related corpora::

    $ curl [https://raw.githubusercontent.com/codelucas/newspaper/master/download\_corpora.py](https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py) | python3
- Install the distribution via pip::

    $ pip3 install newspaper3k

**If you are on OSX**, install using the following, you may use both homebrew or macports:

::

```
$ brew install libxml2 libxslt

$ brew install libtiff libjpeg webp little-cms2

$ pip3 install newspaper3k

$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3

```

**Otherwise**, install with the following:

NOTE: You will still most likely need to install the following libraries via your package manager

- PIL: `libjpeg-dev` `zlib1g-dev` `libpng12-dev`
- lxml: `libxml2-dev` `libxslt-dev`
- Python Development version: `python-dev`

::

```
$ pip3 install newspaper3k

$ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3

```

### Install on venv

[](#install-on-venv)

> The venv module supports creating lightweight “virtual environments”, each with their own independent set of Python packages installed in their site directories. A virtual environment is created on top of an existing Python installation, known as the virtual environment’s “base” Python, and may optionally be isolated from the packages in the base environment, so only those explicitly installed in the virtual environment are available. [Python](https://docs.python.org/3/library/venv.html)

also,

> A common directory location for a virtual environment is .venv. This name keeps the directory typically hidden in your shell and thus out of the way while giving it a name that explains why the directory exists. It also prevents clashing with .env environment variable definition files that some tooling supports.

Bearing this in mind here this is the recommended way to install your dependencies:

1. If installing for the first time you may need to make sure pip is enabled. On ubuntu 22.x first update apt e.g. `apt update` then install `apt install python3-pip`
2. If installing for the first time you may also need to make sure venv is available. On ubuntu 22.x it can be downloaded like so `apt install python3-venv`
3. Decide where you want to set up you venv. This can be somehwere on your virtual host. You can use the following syntax: `python -m venv /path/to/new/virtual/.venv`
4. Activate your .venv in your current session. e.g. `source /path/to/new/virtual/.venv/bin/activate`
5. The first time you set up your script you will likely need to download and install any necessary dependencies. You can use pip to help with this form your Virtual session. Once you have installed your dependencies, you can export a list to use for subsequent installs e.g. `python -m pip freeze > /path/to/requirements.txt`
6. Exit your virtual environment. e.g. `deactivate`

### Subsequent installs

[](#subsequent-installs)

The next time you have to set up your dependencies, you can now start using pip to install them automatically. e.g. `python -m pip install -r /path/to/requirements.txt`

Running on the server
---------------------

[](#running-on-the-server)

Chances are you web server does not run a virtual environment session. However, we can still specify the path to python in our newly created virtual environment folder and python will automatically load your installed dependencies (unlike the global server version). e.g. We can pass the absolute path to the version of python we want to use by passing the following $command parameter: `/path/to/python/.venv/bin/python`

This can also be passed relatively which can be more robust across different environments. e.g. `../relative/path/to/python/.venv/bin/python`

If we do not a path for $command, it will default to use the globally installed verion of `python`.

Installation
------------

[](#installation)

```
composer require 2dareis2do/newspaper-playwright-wrapper

```

1 time download of the sentence tokenizer
-----------------------------------------

[](#1-time-download-of-the-sentence-tokenizer)

After installing the NLTK package, please do install the necessary datasets/models for specific functions to work.

In particular you will need the Punkt Sentence Tokenizer.

e.g.

```
$ python

```

loads python interpreter:

```
>>> import nltk
>>> nltk.download('all')

```

or

```
>>> nltk.download('punkt')

```

Usage
-----

[](#usage)

```
use Twodareis2do\ScrapeNewspaperPlaywright\NewspaperPlaywrightWrapper;

$parser = new NewspaperPlaywrightWrapper();

$parser->scrape('your url', false);
```

Read more
---------

[](#read-more)

(Newspaper)\[\]

(nltk)\[\]

(Scrape &amp; Summarize News Articles Using Python)\[\]

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance46

Moderate activity, may be stable

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~47 days

Recently: every ~70 days

Total

7

Last Release

416d ago

Major Versions

1.0.5 → 2.0.02025-03-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/87d7d5166c52eb84e4fbcfcdb3444c60ef513347e8ed2f58a38a3fa2dfdfc468?d=identicon)[2dareis2do](/maintainers/2dareis2do)

---

Top Contributors

[![2dareis2do](https://avatars.githubusercontent.com/u/1718370?v=4)](https://github.com/2dareis2do "2dareis2do (11 commits)")

---

Tags

languagescrape newsarticleplaywrightnatural-processingNewspaper3kNewspaper4k

### Embed Badge

![Health badge](/badges/2dareis2do-newspaper-playwright-wrapper/health.svg)

```
[![Health](https://phpackages.com/badges/2dareis2do-newspaper-playwright-wrapper/health.svg)](https://phpackages.com/packages/2dareis2do-newspaper-playwright-wrapper)
```

###  Alternatives

[openai-php/client

OpenAI PHP is a supercharged PHP API client that allows you to interact with the Open AI API

5.8k22.6M232](/packages/openai-php-client)[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[theodo-group/llphant

LLPhant is a library to help you build Generative AI applications.

1.5k311.5k5](/packages/theodo-group-llphant)[google-gemini-php/client

Gemini API is a supercharged PHP API client that allows you to interact with the Gemini API

402986.7k21](/packages/google-gemini-php-client)[google-gemini-php/laravel

Google Gemini PHP for Laravel is a supercharged PHP API client that allows you to interact with the Google Gemini AI API

614397.1k4](/packages/google-gemini-php-laravel)[openai-php/symfony

Symfony Bundle for OpenAI

215715.5k3](/packages/openai-php-symfony)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
