Posted on Leave a comment

Python BS4 – How to Scrape Absolute URL Instead of Relative Path

5/5 – (1 vote)

Summary: Use urllib.parse.urljoin() to scrape the base URL and the relative path and join them to extract the complete/absolute URL. You can also concatenate the base URL and the absolute path to derive the absolute path; but make sure to take care of erroneous situations like extra forward-slash in this case.

Quick Answer

When web scraping with BeautifulSoup in Python, you may encounter relative URLs (e.g., /page2.html) instead of absolute URLs (e.g., http://example.com/page2.html). To convert relative URLs to absolute URLs, you can use the urljoin() function from the urllib.parse module.

Below is an example of how to extract absolute URLs from the a tags on a webpage using BeautifulSoup and urljoin:

from bs4 import BeautifulSoup
import requests
from urllib.parse import urljoin # URL of the webpage you want to scrape
url = 'http://example.com' # Send an HTTP request to the URL
response = requests.get(url)
response.raise_for_status() # Raise an error for bad responses # Parse the webpage content
soup = BeautifulSoup(response.text, 'html.parser') # Find all the 'a' tags on the webpage
for a_tag in soup.find_all('a'): # Get the href attribute from the 'a' tag href = a_tag.get('href') # Use urljoin to convert the relative URL to an absolute URL absolute_url = urljoin(url, href) # Print the absolute URL print(absolute_url)

In this example:

  • url is the URL of the webpage you want to scrape.
  • response is the HTTP response obtained by sending an HTTP GET request to the URL.
  • soup is a BeautifulSoup object that contains the parsed HTML content of the webpage.
  • soup.find_all('a') finds all the a tags on the webpage.
  • a_tag.get('href') gets the href attribute from an a tag, which is the relative URL.
  • urljoin(url, href) converts the relative URL to an absolute URL by joining it with the base URL.
  • absolute_url is the absolute URL, which is printed to the console.

Now that you have a quick overview let’s dive into the specific problem more deeply and discuss various methods to solve this easily and effectively. 👇

Problem Formulation

Problem: How do you extract all the absolute URLs from an HTML page?

Example: Consider the following webpage which has numerous links:

Now, when you try to scrape the links as highlighted above, you find that only the relative links/paths are extracted instead of the entire absolute path. Let us have a look at the code given below, which demonstrates what happens when you try to extract the 'href' elements normally.

from bs4 import BeautifulSoup
import urllib.request
from urllib.parse import urljoin
import requests web_url = 'https://sayonshubham.github.io/'
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get(web_url, headers=headers)
# Store the webpage contents
webpage = response.content
# Check Status Code (Optional)
# print(response.status_code)
# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")
for i in soup.find_all('nav'): for url in i.find_all('a'): print(url['href'])

Output:

/
/about
/blog
/finxter
/

The above output is not what you desired. You wanted to extract the absolute paths as shown below:

https://sayonshubham.github.io/
https://sayonshubham.github.io/about
https://sayonshubham.github.io/blog
https://sayonshubham.github.io/finxter
https://sayonshubham.github.io/

Without further delay, let us go ahead and try to extract the absolute paths instead of the relative paths.

Method 1: Using urllib.parse.urljoin()

The easiest solution to our problem is to use the urllib.parse.urljoin() method.

According to the Python documentation: urllib.parse.urljoin() is used to construct a full/absolute URL by combining the “base URL” with another URL. The advantage of using the urljoin() is that it properly resolves the relative path, whether BASE_URL is the domain of the URL, or the absolute URL of the webpage.

from urllib.parse import urljoin URL_1 = 'http://www.example.com'
URL_2 = 'http://www.example.com/something/index.html' print(urljoin(URL_1, '/demo'))
print(urljoin(URL_2, '/demo'))

Output:

http://www.example.com/demo
http://www.example.com/demo

Now that we have an idea about urljoin, let us have a look at the following code which successfully resolves our problem and helps us to extract the complete/absolute paths from the HTML page.

Solution:

from bs4 import BeautifulSoup
import urllib.request
from urllib.parse import urljoin
import requests web_url = 'https://sayonshubham.github.io/'
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get(web_url, headers=headers)
# Store the webpage contents
webpage = response.content
# Check Status Code (Optional)
# print(response.status_code)
# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")
for i in soup.find_all('nav'): for url in i.find_all('a'): print(urljoin(web_url, url.get('href')))

Output:

https://sayonshubham.github.io/
https://sayonshubham.github.io/about
https://sayonshubham.github.io/blog
https://sayonshubham.github.io/finxter
https://sayonshubham.github.io/

Method 2: Concatenate The Base URL And Relative URL Manually

Another workaround to our problem is to concatenate the base part of the URL and the relative URLs manually, just like two ordinary strings. The problem, in this case, is that manually adding the strings might lead to “one-off” errors — try to spot the extra front slash characters / below:

URL_1 = 'http://www.example.com/'
print(URL_1+'/demo') # Output --> http://www.example.com//demo

Therefore to ensure proper concatenation, you have to modify your code accordingly such that any extra character that might lead to errors is removed. Let us have a look at the following code that helps us to concatenate the base and the relative paths without the presence of any extra forward slash.

Solution:

from bs4 import BeautifulSoup
import urllib.request
from urllib.parse import urljoin
import requests web_url = 'https://sayonshubham.github.io/'
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get(web_url, headers=headers)
# Store the webpage contents
webpage = response.content
# Check Status Code (Optional)
# print(response.status_code)
# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")
for i in soup.find_all('nav'): for url in i.find_all('a'): # extract the href string x = url['href'] # remove the extra forward-slash if present if x[0] == '/': print(web_url + x[1:]) else: print(web_url+x)

Output:

https://sayonshubham.github.io/
https://sayonshubham.github.io/about
https://sayonshubham.github.io/blog
https://sayonshubham.github.io/finxter
https://sayonshubham.github.io/

⚠ Caution: This is not the recommended way of extracting the absolute path from a given HTML page. In situations when you have an automated script that needs to resolve a URL but at the time of writing the script you don’t know what website your script is visiting, in that case, this method won’t serve your purpose, and your go-to method would be to use urlljoin. Nevertheless, this method deserves to be mentioned because, in our case, it successfully serves the purpose and helps us to extract the absolute URLs.

Conclusion

In this article, we learned how to extract the absolute links from a given HTML page using BeautifulSoup. If you want to master the concepts of Pythons BeautifulSoup library and dive deep into the concepts along with examples and video lessons, please have a look at the following link and follow the articles one by one wherein you will find every aspect of BeautifulSoup explained in great details.

YouTube Video

🔗 Recommended: Web Scraping With BeautifulSoup In Python

With that, we come to the end of this tutorial! Please stay tuned and subscribe for more interesting content in the future.

The post Python BS4 – How to Scrape Absolute URL Instead of Relative Path appeared first on Be on the Right Side of Change.

Posted on Leave a comment

Video: We’ve Played Super Mario Bros. Wonder – Here’s 8 Minutes Of Gameplay

With the first brand new 2D Mario game in over 11 years just weeks away from jumping onto Switch, Super Mario Bros. Wonder has us in a daze.

We went hands-on with the game at a special event earlier this week — and we’ll bring you some more impressions on the game in the near future. But for now, we’ve got around eight minutes of gameplay from the upcoming platformer.

We got to try out a number of different levels, and we’re showing off snippets of a few of them in today’s video, along with demonstrating a couple of the new powerups, the Elephant and the Drill There’s also a brand new minigame — a “break time” — where you can earn Wonder Seeds. And of course, we got to try out the Wonder Flower, Super Mario Bros. Wonder’s zany-new item where you can “expect the unexpected”.

If you’re excited about the game, then this gameplay is well worth checking out — they’re all early-ish levels, and we play with a number of different characters and test out some multiplayer antics with the adorable little Yoshi.

Super Mario Bros. Wonder launches on 20th October. Are you looking forward to playing this next month? Let us know!

Posted on Leave a comment

PHP 8.1.24 Released!

The PHP development team announces the immediate availability of PHP
8.1.24. This is a bug fix release. All PHP 8.1 users are encouraged to upgrade to this version. For source downloads of PHP 8.1.24 please visit our downloads page.
Windows binaries can be found on the PHP for Windows site.
The list of changes is recorded in the ChangeLog. Release Announcement: <https://php.net/releases/8_1_24.php>
Downloads: <https://php.net/downloads>
Windows downloads: <https://windows.php.net/download#php-8.1>
Changelog: <https://php.net/ChangeLog-8.php#8.1.24>
Release Manifest:
<https://gist.github.com/ramsey/0ad05a7bffcb630cc3cea31aecbbec5f> Many thanks to all the contributors and supporters! Ben Ramsey, Patrick Allaert, & Joe Watkins php-8.1.24.tar.bz2
SHA256 hash: b0ae5804a9ad53a7e28d0a32629495f816f935b10830c71f4ec15827185a73c9
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEObZBND2MEEsrFG3D+cOdwLlphUQFAmUTbUQACgkQ+cOdwLlp
hUQa8Q/7B9Oi8Ejcs1UjDue6O2FkhIiRgXiaSp1Dh4V7hgZpq0tM7UhJsWKvoJqH
zsGMj7y71iY/yVFuxRJ3l5VQ33NH5vaAUdfby3B1h0CAW3ywrW8J45cAuTPKnogQ
xywp5EvKzcdivGTHnbEvaWOWSYGH7KUx7/J+k4x7DxTkL2H1rcQDZ4Gz+45PuH4H
IEDZ6x1gJ6/IKyih8XYArab+V7cXV2lBq8EqHozdT+tCcSmG3lL6qQV775rLp47O
bkN0OZ1+d7UkrqvcxUIAn20WdrtfaWvWo8Hm0FtcRC06so72puZlXWezjh1LryAO
WTF3krLPkwHtbC685lraGt4fio1137VdCCTjVRfmZkxBYoqwqesBhDd3JA83+EFz
WtF8/szJJ8Op3OWvYJgGN0ldKttpKKTe3iX6yDJLh8HlQsoReBOa4UNRejn/hrNo
bT8OHOAAdoMzHBptDIC7K7UJjK8TljyL4TNDJfST7R/PlbLHNQemkM7kH5Opnthx
R5u48EwVoYMshTHsQio7q5HvHR7QxCpehYuVzpj/lFymKNc/bLJ77kcA2dIrNtE8
9/G7Sx2Nsuofrf1LciJOiKevgNshaiv4L9ykDEPEt6LAo6MYKeMW3zmH12U/Bo4q
7E8rkWZkJnfXXCQeUXpvpIzMfAcTSWblZEqFhbQLpCtxRHRIIBs=
=m6sX
-----END PGP SIGNATURE----- php-8.1.24.tar.gz
SHA256 hash: d6001a5c16765cd1897609fc71ff083e35db9a28c8874a1ff191cdebe80a6460
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEObZBND2MEEsrFG3D+cOdwLlphUQFAmUTbUYACgkQ+cOdwLlp
hUS9+Q//dTV2hzMWKGRLFqQXDGA6slCwlSs3PY/t4YiWj5huC3/j/z4XRb00ZQPm
Z9hvOY98whiJJQAOKjQSwSZxYnn/vpfv3DU0Db2HkIwqyDyj8MEtMZeFfi+fkRuI
9PoI4FXxie5x0Vhzr+09Tre2NeiUKVxmFBuG7sFG1ksmw5L8O+NSiiVl4OjfjhW9
BXc2dNrSkZ1mdY4Z7BlWz5SGB7VJ3PAMLoaW7nTIixes8Ddqh/DVWelzGQ8Ctql6
jUd7oU/QIuiWQ0LcTQmTMnMD6KWXyzKASxpOlPnWJxK5WJMZfRT/YHXh9bTqXKlK
q0hc0m527APEe913qV8YXit2HqYZdKWgVkD54HxeNRWXJNvcUIMWzk3l5YTguZU8
51E8RtYh5V9fn/7hZnywlZ9mtLMdPKIrKxujAczVB/DijYwDnKUSKQyKEHt4teUi
jK7j8VC6k8XqalCyoooUBefWuolEQavr8BtXJrur4bbL1MNDOIgx5GOipDAuTsxj
L0tFxkzQXQfuNIhBWmm4hvn0hp3d/x2QZmPt9pCOVMXTGDz9MXsoeq8+OWTnEY2r
PFJ37DU543i1ouC08NvdT1zeBu0+Jjc0okFJspgAXPGmMNTIkGBnNHrs1Kq1lVmo
XZAFE9Vu2VcoV6vaQWcCB+PR1R6JpDQkfngqyXAvDC+Q73vVlS8=
=g54U
-----END PGP SIGNATURE----- php-8.1.24.tar.xz
SHA256 hash: ee61f6232bb29bd2e785daf325d2177f2272bf80d086c295a724594e710bce3d
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEObZBND2MEEsrFG3D+cOdwLlphUQFAmUTbUcACgkQ+cOdwLlp
hUSVXhAAh0rPyjUqa86t4ENJXU/buWIS9Y76Ucp9XF8uxW623YRzot03FSqKdsG2
Gx/tv97L5/ALop3bfIpSyLso0p20OtlEW6Nr13pBYKBIw6LzG/AC4at1/ruEqZKJ
3ji+O6as0xp/Ewoi8sctamyWAFoRqYgw7KSU0voV1ZICrOl20By9WVfBNRbkpSS7
oPQIFqRuJDZroZ7siQ3ZFjYE8uuqrE4oJ7JRQ5A1iLaVNRvuyc+8192UkxnuPP9+
LJsJPilLX+eHwextZwngqyrwwVGKFZUMEH1+hfHYnAnPrMtxSFBMY61CMzdgXFZL
3d/GyhJppC5lzJNpJM1FUz2CZrnqugxS6571Dm9kafTeRqlLakRmtI5fGqPbdd0c
Uvf9UBuq0VJIMHs0jqfjihPlRWN7s2F9RzZgsAjQznPxmRKJxXVrLt3SlvXfRFqr
IjLz+6pHSS/5ZFuVYOLKpgu+skNXpe17z68HmPAZBjRSBtAhpANjpDnR6LkNb0SF
AhU5iomAvWVh7q4tFyVCEjlR9UHBB4zt38qiI46mLLWbXsJ9CxJgTXmHFKvnLIW/
fshu751r+kQG9h0ysziioPZcJMkZh0NagTeD49RHgujg4AQjsB38cpA4E3XfBHX9
sU6xLQ3YnunHJAz8IUxzqQy8VtUafbbgHfLPafWnqvD7uean0SE=
=wVTR
-----END PGP SIGNATURE----- 

Attachment: [application/pgp-signature] OpenPGP digital signature OpenPGP_signature.asc

Posted on Leave a comment

Sonic Frontiers: The Final Horizon DLC Launch Trailer Highlights Tails, Knuckles & Amy

Sonic Frontiers‘ final free update, The Final Horizon, launches later today, and ahead of its release, SEGA has dropped a brand new trailer which shows off gameplay from all four playable characters.

The Final Horizon will be available to download from 5pm PST / 8pm EST / 10pm BST today, 28th September, and will allow you to play not only as Sonic, but Tails, Knuckles, and Amy, and we get a brief look at all of them in action. Long-time Sonic fans will be delighted to see the Cyclone, Tails’ mech from Sonic Adventure 2, while Amy and Knuckles’ gameplay focuses on combat and platforming.

Three new playable characters are good enough for free DLC, but this new update will also deliver some brand new story beats, challenges, and more, all in aid of a “climactic” end to Frontiers.

Here’s a rundown of the DLC’s plot from SEGA:

The additional narrative takes place before the final battle on Ouranos Island, where Sage reconsiders an unlikely scenario amongst her millions of calculations. With the assistance of Sage and Dr. Eggman, Sonic sets this new plan into motion, and accepts the challenge of converting the Cyber Corruption into a vast, previously untapped power source. Meanwhile, Amy, Knuckles, and Tails seek to do their part and begin searching for the Chaos Emeralds on Sonic’s behalf to change their fate.

Will you be checking out The Final Horizon? Run on down to the comments.

Posted on Leave a comment

DS Horror Classic ‘Dementium: The Ward’ Slashes Onto Switch eShop Soon

Atooi has revealed it will be launching an updated version of the award-winning Dementium: The Ward on the Switch eShop on 12th October.

Originally released on Nintendo DS in 2007 with a 3DS remaster following in 2015, Dementium: The Ward is a first-person survival horror in which you take on the role of William Redmoor, an amnesiac who must escape the confines of a derelict and dangerous hospital. Based on the remastered 3DS version, this new release looks to retain as much of the essence of the original while ensuring the gameplay and UI translate well to a console experience.

We’ve spoken to lead developer Jools Watsham for an upcoming interview and he said that the team’s goal with this new Switch version was “to make sure the game experience was as comfortable as possible, while placing players in the most uncomfortable of situations.”

Changes include alterations to the UI to ensure features fit onto a single-screen format, along with some quality-of-life updates like highlighting save rooms on the in-game map. Aside from this, much of the original remaster’s lo-fi visuals remain intact, but the experience has been upgraded to take advantage of the 16:9 aspect ratio with a solid performance of 60fps.

This news comes a day after the launch date reveal for Hatch Tales, a long-in-development Atooi title originally crowdfunded back in 2018. We’ve talked to Watsham about both titles in an upcoming interview, so look out for that in the near future.

Dementium: The Ward launches on October 12, 2023 for $19.99. Played the original or the 3DS version? Looking forward to seeing this one Switch? Let us know below.

Posted on Leave a comment

Hellboy Web Of Wyrd Release Date Pushed Back Slightly

Hellboy Web of Wyrd 1
Image: Good Shepherd Entertainment

The upcoming Hellboy video game from Upstream Arcade is being delayed by two weeks to ensure “that all players – longtime fans and newcomers to the Hellboy universe alike – receive the best experience possible”, publisher Good Shepherd Entertainment has revealed today.

Hellboy Web of Wyrd will now be launching on 18th October 2023, right in-between some of the month’s biggest releases. The upcoming third-person beat ’em up with procedurally generated levels looks particularly striking thanks to its hand-drawn-style visuals that attempt to recreate the magic of creator Mike Mignola’s art style. The late Lance Reddick plays the iconic Big Red who is sent to the realm of Wyrd after a Bureau for Paranormal Research and Defense (B.P.R.D.) goes missing.

The game was first announced a The Game Awards 2022 and is the first Hellboy game since 2008’s poorly received Hellboy: The Science of Evil on PS3, Xbox 360, and PSP, though Big Red did make an appearance in Injustice 2 as a playable guest fighter.

While we need to wait an extra couple of weeks for the game to emerge on Switch and other platforms, we can at least have a look at some screens from the game to tide us over:

Hellboy Web of Wyrd launches on 18th October on the Switch eShop. Will you be grabbing this one? Let us know down below.

Posted on Leave a comment

Nintendo To Showcase Super Mario Bros. Wonder At EGX (UK)

Mario EGX
Image: Nintendo Life

Ahead of its launch on October 20th, 2023, Super Mario Bros. Wonder will be showcased and playable at EGX in London from October 12th – 15th.

Nintendo will be in attendance to give players in the UK the first opportunity to try out the new game, but will also be offering up some additional fun activities for attendees. Costumed Mario and Luigi characters will be roaming about to allow for some great photo opportunities, and Nintendo will also be hanging out in the Family Zone, demonstrating some key titles from its Switch line-up.

Here’s what Kalpesh Tailor, Head of Communications at Nintendo UK, had to say:

“Nintendo UK is excited to partner with EGX to bring the first UK hands-on play of Super Mario Bros. Wonder to attendees. We’re excited to see everyone get to experience the power of the Wonder Flower and the unexpected surprises that will bring. EGX brings players together, which is at the heart of everything we do, and can’t wait to share these experiences with everyone in October.”

Granted, with only a week separating the start of EGX and the full launch of Super Mario Bros. Wonder, many of you will no doubt be quite content to wait and play the final product. For those itching to get their hands on the game, however, this will no doubt prove to be a perfect opportunity.

Will you be attending EGX this year? Will you try out Super Mario Bros. Wonder before its full launch? Let us know with a comment.

Posted on Leave a comment

‘Dwerve’ Serves Up Zelda-Inspired Visuals And Tower Defence Next Month

Dwerve 1
Image: Half Human Games

Developer Half Human Games has announced that its tower-defence RPG Dwerve will be making its way to the Nintendo Switch eShop on October 12th, 2023.

Boasting gorgeous pixel art visuals and inspired by the likes of The Legend of Zelda: A Link to the Past, Orcs Must Die!, and Dungeon Defenders, Dwerve sees you take on the role of the titular hero, Dwerve, who must defend the ruined kingdom against hordes by utilising a multitude of turrets and traps.

The game promises a compelling story, engaging gameplay mechanics, and, judging from the trailer above, some intriguing supporting characters.

Here’s a look at the key features:

– Tower-defense combat! Build turrets and traps to fend off swarms of monsters!
Dungeon-crawling! Explore a ruined kingdom brimming with hidden secrets and puzzles!
Upgrade your turrets and traps! Each has its own upgrade tree with 100+ upgrades in all!
Fight epic boss battles! Use strategy, wit, and fast reflexes to outmaneuver massive monsters!
Discover powerful artifacts! Dragonfire Boots, Lionheart Shield, Gurrakk’s Hammer, and more!
Embark on an adventure! Meet friends, travel throughout the mountain, stop the Witch-Queen!

You can check out Dwerve on the NA eShop page right now, where it will cost $19.99.

Does this one look interesting to you? Will you be adding it to your Switch collection? Let us know with a comment in the usual place.

Posted on Leave a comment

PHP 8.2.11 Released!

 The PHP development team announces the immediate availability of PHP
8.2.11. This is a security release. All PHP 8.2 users are encouraged to upgrade to this version. For source downloads of PHP 8.2.11 please visit our downloads page.
Windows binaries can be found on the PHP for Windows site.
The list of changes is recorded in the ChangeLog. Release Announcement: https://php.net/releases/8_2_11.php
Downloads: https://php.net/downloads
Windows downloads: https://windows.php.net/download#php-8.2
Changelog: https://php.net/ChangeLog-8.php#8.2.11
Release Manifest:
https://gist.github.com/saundefined/f30a9336defb8105f2be9a058b080d5a Many thanks to all the contributors and supporters! Pierrick Charron, Sergey Panteleev & Ben Ramsey php-8.2.11.tar.bz2
SHA256 hash: 38192daeffabf4af6c427bf17ac1f82565d9c7522e0dbd32215162944434b28b
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE5gkT5N8gmQfY4w2WZZqXyc8qeVoFAmUSvOgACgkQZZqXyc8q
eVqKdw//QlVRN4Tn5dQU3Xo8hmMO+r7e9FQPRkHCQ5fsyLe+o7aNAzGntvBE1rbJ
jQB+0KtxmD/4RIfCPXGL6JV/LpnZIIl4Tx+4Clr5Kpr46yQdcNLMXJWPo6AmWUhm
Q03Ow9fYTNXJf7T+GzhGiRsrpI8j1zGXzFwUch0uHZMaO2mcg9yrp6M94+KR+iiq
GjgKopnDurPy5C6xmmAPxSoACkolR7dDyQpMhqNYCwShwV8/G8vCwt7I5k0wktUq
/NxXSgHZ+HQjPAe+cyjdNx+/kMkLEa3TfABjTSjwWvGPGBVr8ylhvrXfDWl6nSwt
t0v5iGUNgzecH0lzTTNq7uBN0y/znfT86NSoSVJ6tRSTjh3vKTs8ce8EyM1KUsys
5sZB9U8GWh1RSQRx39Ze3PMI98Vrc39RSU2v71xtMrUITDhCUOsYQtLzmaIWkc3z
w2GMzb1oPuD9+Q0zffHOUtxVmjhOz1BzIFdJwmStjRfXRZtmYoUmqU3tm2wsjow9
45efGImbZ8JRqwZ5uEvs/9FeABTI0QE9giDO1z1xbZXr0DObKo5IviAYKGqCbj8V
IyymW/7o2vHob90jZ/M0zqL+F+REd9oLMACIzX/SC2TJgdHO30nHHKvj5R4AwEHk
9icxR7BMenPXWzMX/UYkgOoAllLS3OLdRUPnCAKnhNYE+yWLFE8=
=Dq/H
-----END PGP SIGNATURE----- php-8.2.11.tar.gz
SHA256 hash: 48b1b41279a678a4d4afcd0b256ed921ebf2a91febb0634fdc4449b91c75799f
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE5gkT5N8gmQfY4w2WZZqXyc8qeVoFAmUSvO0ACgkQZZqXyc8q
eVp6Yw/+OPX/qiGnO825SHNQoMxL+cPBQUJ9w4uVVg3egowgxxsp4++KOOuHOcnv
p6k4Hpx8Q1pX3NOFORZjf8fNTZXSRPcXZSsSkYfe42zaG6wDknve5mnc8Yvf6Me4
h+wOL/97lqJYmsBawPgxBnYEr/NCWcEVcx94NbR6/7pHOMjg7xL07DLkhsaq3cIh
4ra3HY5VN5PoLChumc0kA2KfJ921qm1qRaieaCZAopzDXGhqun0BQHFh+BTXPwKS
nVHfH7g8FFrTcHKAk/QW31t7CpEXjhJCGKNsqfieZtVDniZCHclfwJHe5TMmRtPW
i7bcLMMzvkTa7ZChaNoaH+BV9ciESUL4YCe/6TtaSywhg+TX0NriGztxxTkWuOxg
qRbasR7R/iuaDuKtPP4IK0LOUCPTRaBGOlkHaWO0QZHCO1Za5vgOLZaSWWtZy1Kx
ptLyalAabsgRG7KFtxNxIfjsHoJK+0vfk1IvPEmrGwWkQD6hWU5edrGUOC8eXm9j
C9OUqWDpSctnOv97aVbe978vQTfBscqnYtS+hR0ZG956SL7A8GqrogBa4tkP1dTn
AvLCFhiuOOFdD8lRVWqCWSFqUYlDziKc3wOS+rQiKDJ22qh8bxH+Tdip468NLZkg
KgPXc12VJegdFmGojI3exW12BWbwRuL9eABeeEnVKfDUwIyMIMk=
=3Gly
-----END PGP SIGNATURE----- php-8.2.11.tar.xz
SHA256 hash: 29af82e4f7509831490552918aad502697453f0869a579ee1b80b08f9112c5b8
PGP signature:
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE5gkT5N8gmQfY4w2WZZqXyc8qeVoFAmUSvO4ACgkQZZqXyc8q
eVoGCA//dZ97NTrXSSwvvtz/mLh878An4AidAAQZjXZi/nxomjQ4X+eSjBUf/+MB
tEGApz3fAtL/gBTUsuGpI+8zTlepG6QdYqTB2t4N+8JZ9fW8bgdNXn+mMxJuFKfY
dZzbBYckwxgpM76JIl8yY7QHjbsx+OM3p3IYpnyo6Wvcj5UZj17C3/Md6RrjY+AS
yNVLdXipHlypbUqH0lvbCfrFAGQRLUpLedi8CjeIWsWYXD3YPBbrel9HSEsZqBb5
b6MLoHJuAzx7I881H6vLPpJ1qJ7OxFQ16FyflH8Ix/8bkJ6yMUsPnTSy/SPNFGgE
KNh2S3DU5ot3wwj3j8edgPMhGzbSss836hUyBVuQI3+8wfujzma2FscEehCLE8V/
0E+4cx7xcYGZyK3hwwcZ1G6s2+Kbb3otHbfDw5Ga58515tOyamK6gpNdi/Y+lsNI
XtskM1IT1OGJUUTcHf6kGi/Mqe2MdYZJlpFWMnEE2zBksZSe/8+AcWX8/X//qXab
lcTcJguk0tnKegJvCd7sZjTByUO6UiJUvhdA8TGYYQb/opaQ5+l7HpptPgkx/p1S
tGS/q4r9XS92ybFLIvioLn24O7/InihvAUgY/ab9C6RkPQHGmKuZEbLc7GmVJBtl
a7IL39fIOfwYVp+WQCOxrLOxmyNm7LAWo2MVohzm7pL+i0suKfE=
=Gxrb
-----END PGP SIGNATURE-----
Posted on Leave a comment

Epic Games Is Reportedly Laying Off Nearly 900 Employees

Fortnite - Last Resort
Image: Epic Games

Epic Games, the creator of Unreal Engine and the ludicrously popular Fortnite, is reportedly laying off 16% of its workforce, which works out at around 900 employees.

The news comes via Bloomberg, with a person familiar with the matter stating that an internal announcement of the job cuts was sent out in a staff memo. In the memo, CEO Tim Sweeney stated “For a while now, we’ve been spending way more money than we earn. I had long been optimistic that we could power through this transition without layoffs, but in retrospect, I see this was unrealistic.”

A total of 870 employees will be affected, and Sweeney states that no more job cuts are being planned beyond this. Around two-thirds of the cuts are said to be within teams that lie outside of Epic’s ‘core development’.

That said, one of the staff members affected was Ed Fear, director and writer at Mediatonic, who worked on titles such as Murder by Numbers. Mediatonic was founded in 2005 and was acquired by Epic Games in 2021.

To coincide with this news, it’s also recently been revealed that the price of Fortnite’s V-Bucks will be increasing in October, with Epic stating that the ‘adjustments are based on economic factors such as inflation and currency fluctuations’.

Here’s how the changes will be reflected going forward:

  • 1,000 V-Bucks – $8.99 (currently $7.99)
  • 2,800 V-Bucks – $22.99 (currently $19.99)
  • 5,000 V-bucks – $36.99 (currently $31.99)
  • 13,500 V-bucks- $89.99 (currently $79.99)

Late last year, Epic Games had agreed to pay a total of $540 million over allegations from the Federal Trade Commission (FTC) over allegations that the company had implemented ‘dark patterns’ to dupe users into making unintentional purchases.

What do you make of these potential redundancies over at Epic Games? Leave a comment with your thoughts below.