text:
Faro della Vittoria (Victory Lighthouse)
One of the tallest lighthouses in the world also serves as a monument to the fallen of World War I.
Faro della Vittoria (Victory Lighthouse) BerserQL (Creative Commons)
We attempted to enter the lighthouse but it was closed for lunch. Julius Spada (Atlas Obscura User)
Julius Spada (Atlas Obscura User)
Faro della Vittoria (Victory Lighthouse) Tiesse (Public Domain)
Faro della Vittoria (Victory Lighthouse) Sfumich (Creative Commons)
Top Places in Trieste
Risiera di San Sabba
Bora Trieste
Arco di Riccardo
Faro della Vittoria (Victory Lighthouse) is a lighthouse on Gretta hill near Trieste, in Italy. With a height of 223 feet (68 meters), it's one of the tallest lighthouses in the world.
It was constructed between 1923 and 1927 to commemorate those who died at sea during World War I. The location was chosen because of the importance of Trieste, acquired by Italy after the war. The lighthouse was designed specifically to be taller than the Berlin Victory Column, which stood at a height of 204 feet (62.3 meters). It also sits atop a former Austrian fort
The basement of the monument is made of local Istrian stone. The lantern is housed inside a bronze crystal cage atop the column. A statue of winged victory is located at the top of the lighthouse, while the front features a sculpture of a seaman and the anchor of an Italian World War I ship. In 1986, the lighthouse reopened to the public following a few years of restoration. Now the lower part of the structure can also be visited by tourists.
Culinary Naples: Producers, Purveyors, and Pizzaioli
From street food to lavish feasts, piping-hot coffee to smooth aperitivos, folk songs to opera, hilltop farms to urban wilds, immerse yourself in the greatest culinary and cultural experiences of Naples, meeting lively local Neapolitani for whom this is the only way to live.
world war i lighthouses history architecture
StepYoshi
Julius Spada, cjklever
https://it.wikipedia.org/wiki/Faro_della_Vittoria_(Trieste)
https://en.wikipedia.org/wiki/Vittoria_Light
141 Str. del Friuli
Trieste, 34136
Grotta Gigante
The Adriatic's most famous wind can be reliably experienced in the city's Marina.
This Roman monument is surrounded by more recent construction, offering a stark contrast between ancient architecture and the modern urban landscape.
Borgo Grotta Gigante, Italy
One of the largest caves in the world open to the public.
During World War II, this rice mill became a Nazi concentration camp.
Gdańsk, Poland
Wisłoujście Fortress
This 700-year-old structure is one of the most unique architectural and historic monuments in Gdańsk.
Aguadilla Pueblo, Puerto Rico
Punta Borinquen Lighthouse Ruins
Years of neglect and nature took a toll on this 19th-century lighthouse.
Porvoo, Finland
Söderskär Lighthouse
A rare octagonal brick beacon on an isolated island in the Baltic.
Elkins Park, Pennsylvania
Frank Lloyd Wright built this suburban synagogue late in life, but it stands among his most iconic masterpieces.


text:
Ourika (en berbère : ⵉⵡⵉⵔⴽⵏ - Iwirken), est une commune rurale de la province d'Al Haouz, située dans la Vallée de l'Ourika, dans la région de Marrakech-Safi, au Maroc. Elle ne dispose pas de centre urbain mais a pour chef-lieu un village du même nom.

La commune rurale d'Ourika est le chef-lieu du caïdat d'Ourika, lui-même situé au sein du cercle de Tahannaout.

Géographie

Historique

La commune d'Ourika créée en 1959, fait partie des 763 premières communes qui ont été formées lors du premier découpage communal qu'a connu le Maroc, elle se trouvait dans la province de Marrakech, précisément dans le cercle de Marrakech-Banlieue.

Démographie

Elle a connu, de 1994 à 2004 (années des derniers recensements), une hausse de population, passant de  à  habitants.

Administration et politique

Notes et références

Commune dans la région de Marrakech-Safi

redpajama_set_name: RedPajamaWikipedia


text:
Q: How can I scrape a website that reveals its content with JS? I want to scrape the comment of a video from youtube.com. But the comments are revealed by js.
My code:
#coding:utf-8

import requests
from bs4 import BeautifulSoup
import time
import re
import json
import urllib.request

url = 'https://www.youtube.com/watch?v=HBxCHonP6Ro&list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'}

r = requests.get(url,headers)

soup = BeautifulSoup(r.text,'lxml')
# print(soup.title)

comment = soup.find(class_='comment-renderer-text-content')

print(comment)

the result is None.

A: Instead of downloading the pages, doing the parsing and executing javascript, you could simply use their api documented here: https://developers.google.com/youtube/v3/docs/comments/list.
On the same page, you even get a full python example:
#!/usr/bin/python

# Usage example:
# python comments.py --videoid='<video_id>' --text='<text>'

import httplib2
import os
import sys

from apiclient.discovery import build_from_document
from apiclient.errors import HttpError
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client.tools import argparser, run_flow

# The CLIENT_SECRETS_FILE variable specifies the name of a file that contains

# the OAuth 2.0 information for this application, including its client_id and
# client_secret. You can acquire an OAuth 2.0 client ID and client secret from
# the {{ Google Cloud Console }} at
# {{ https://cloud.google.com/console }}.
# Please ensure that you have enabled the YouTube Data API for your project.
# For more information about using OAuth2 to access the YouTube Data API, see:
#   https://developers.google.com/youtube/v3/guides/authentication
# For more information about the client_secrets.json file format, see:
#   https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
CLIENT_SECRETS_FILE = "client_secrets.json"

# This OAuth 2.0 access scope allows for full read/write access to the
# authenticated user's account and requires requests to use an SSL connection.
YOUTUBE_READ_WRITE_SSL_SCOPE = "https://www.googleapis.com/auth/youtube.force-ssl"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

# This variable defines a message to display if the CLIENT_SECRETS_FILE is
# missing.
MISSING_CLIENT_SECRETS_MESSAGE = """
WARNING: Please configure OAuth 2.0

To make this sample run you will need to populate the client_secrets.json file
found at:
   %s
with information from the APIs Console
https://console.developers.google.com

For more information about the client_secrets.json file format, please visit:
https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
""" % os.path.abspath(os.path.join(os.path.dirname(__file__),
                                   CLIENT_SECRETS_FILE))

# Authorize the request and store authorization credentials.
def get_authenticated_service(args):
  flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_READ_WRITE_SSL_SCOPE,
    message=MISSING_CLIENT_SECRETS_MESSAGE)

  storage = Storage("%s-oauth2.json" % sys.argv[0])
  credentials = storage.get()

  if credentials is None or credentials.invalid:
    credentials = run_flow(flow, storage, args)

  # Trusted testers can download this discovery document from the developers page
  # and it should be in the same directory with the code.
  with open("youtube-v3-discoverydocument.json", "r") as f:
    doc = f.read()
    return build_from_document(doc, http=credentials.authorize(httplib2.Http()))

# Call the API's commentThreads.list method to list the existing comment threads.
def get_comment_threads(youtube, video_id):
  results = youtube.commentThreads().list(
    part="snippet",
    videoId=video_id,
    textFormat="plainText"
  ).execute()

  for item in results["items"]:
    comment = item["snippet"]["topLevelComment"]
    author = comment["snippet"]["authorDisplayName"]
    text = comment["snippet"]["textDisplay"]
    print "Comment by %s: %s" % (author, text)

  return results["items"]

# Call the API's comments.list method to list the existing comment replies.
def get_comments(youtube, parent_id):
  results = youtube.comments().list(
    part="snippet",
    parentId=parent_id,
    textFormat="plainText"
  ).execute()

  for item in results["items"]:
    author = item["snippet"]["authorDisplayName"]
    text = item["snippet"]["textDisplay"]
    print "Comment by %s: %s" % (author, text)

  return results["items"]

# Call the API's comments.insert method to reply to a comment.
# (If the intention is to create a new to-level comment, commentThreads.insert
# method should be used instead.)
def insert_comment(youtube, parent_id, text):
  insert_result = youtube.comments().insert(
    part="snippet",
    body=dict(
      snippet=dict(
        parentId=parent_id,
        textOriginal=text
      )
    )
  ).execute()

  author = insert_result["snippet"]["authorDisplayName"]
  text = insert_result["snippet"]["textDisplay"]
  print "Replied to a comment for %s: %s" % (author, text)

# Call the API's comments.update method to update an existing comment.
def update_comment(youtube, comment):
  comment["snippet"]["textOriginal"] = 'updated'
  update_result = youtube.comments().update(
    part="snippet",
    body=comment
  ).execute()

  author = update_result["snippet"]["authorDisplayName"]
  text = update_result["snippet"]["textDisplay"]
  print "Updated comment for %s: %s" % (author, text)

# Call the API's comments.setModerationStatus method to set moderation status of an
# existing comment.
def set_moderation_status(youtube, comment):
  youtube.comments().setModerationStatus(
    id=comment["id"],
    moderationStatus="published"
  ).execute()

  print "%s moderated succesfully" % (comment["id"])

# Call the API's comments.markAsSpam method to mark an existing comment as spam.
def mark_as_spam(youtube, comment):
  youtube.comments().markAsSpam(
    id=comment["id"]
  ).execute()

  print "%s marked as spam succesfully" % (comment["id"])

# Call the API's comments.delete method to delete an existing comment.
def delete_comment(youtube, comment):
  youtube.comments().delete(
    id=comment["id"]
  ).execute()

  print "%s deleted succesfully" % (comment["id"])

if __name__ == "__main__":
  # The "videoid" option specifies the YouTube video ID that uniquely
  # identifies the video for which the comment will be inserted.
  argparser.add_argument("--videoid",
    help="Required; ID for video for which the comment will be inserted.")
  # The "text" option specifies the text that will be used as comment.
  argparser.add_argument("--text", help="Required; text that will be used as comment.")
  args = argparser.parse_args()

  if not args.videoid:
    exit("Please specify videoid using the --videoid= parameter.")
  if not args.text:
    exit("Please specify text using the --text= parameter.")

  youtube = get_authenticated_service(args)
  # All the available methods are used in sequence just for the sake of an example.
  try:
    video_comment_threads = get_comment_threads(youtube, args.videoid)
    parent_id = video_comment_threads[0]["id"]
    insert_comment(youtube, parent_id, args.text)
    video_comments = get_comments(youtube, parent_id)
    update_comment(youtube, video_comments[0])
    set_moderation_status(youtube, video_comments[0])
    mark_as_spam(youtube, video_comments[0])
    delete_comment(youtube, video_comments[0])
  except HttpError, e:
    print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
  else:
    print "Inserted, listed, updated, moderated, marked and deleted comments."
comment_handling.py

If you really want to do it from their website, you could use a solution described here:
Web-scraping JavaScript page with Python

redpajama_set_name: RedPajamaStackExchange


text:
Globalizing Palliative Care
Unfolding Finitudes
Annemarie Samuels gives guest lecture on Medical Anthropology in Banda Aceh, Indonesia
Friday 10 June 2022 Annemarie Samuels will give a guest lecture on Medical Anthropology: Culture, Care & Illness. In this Lecture in the Guest Lecture Series of the International Center of Aceh and Indian Ocean Studies in Banda Aceh, Indonesia, Annemarie Samuels will speak about Medical Anthropology. She will discuss how medical anthropologists study the ways in which people understand illness, care and the body; approach medicine as a cultural practice; and develop critical theory about the unequal distribution of health.
Lemos Dekker invited speaker on Symposium 'For the time being' in Aarhus, Denmark
In the symposium 'For the time being – temporality, ethics, aging: Conversations between anthropology, art and philosophy' the main question is: How do temporal perspectives on lived time and time left change with old age and what are the roles of inter-and intra-generational dynamics in elderly's perspectives on past, present and future life challenges and horizons? In her presentation, Natashe Lemos Dekker shed light on the divergent temporalities that are at play in requesting euthanasia with dementia in the Netherlands. Particularly, she addresses the use of written statements that describe the wish for euthanasia of the person with dementia as a tool to resolve temporal dissonances and transfer responsibility to family members.
Annemarie Samuels argues in Dutch newspaper Trouw for better conversations about death
In the opinion article 'Maak praten over de dood niet tot een morele plicht' (Don't turn talking about death into a moral obligation) Annemarie Samuels argues together with Liesbeth van Vliet, Marike de Meij and Sander de Hosson that it is important to have conversations about death and dying but that we need to be careful not to make talking about death a moral obligation. The article (in Dutch) is published in the Dutch newspaper Trouw on 25 March 2022.
Natashe Lemos Dekker awarded Distinguished Women Scientists Fund
Natashe Lemos Dekker has been awarded the Distinguished Women Scientists Fund 2021. This travel grant for female postdocs allows her to spend a period as a visiting fellow at the UCLA Department of Anthropology in the United States. Lemos Dekker will participate in the group 'Mind, Medicine, and Culture', which advocates a critical perspective on health and illness that would greatly benefit Natashe's own research on end-of-life care. Lemos Dekker is one of the six 6 laureates who will receive the DWSF travel grant 2021-2022.
Hanum Atikasari in panel discussion on end-of-life care for women with reproductive and breast cancer in Jakarta, Indonesia
On Wednesday 23 March 2022, Hanum Atikasari was the speaker during the Raboan Discussion Forum on Navigating end-of-life care: an ethnography of women with reproductive and breast cancer in Jakarta, Indonesia. The event was organized by the Center for Bioethics and Medical Humanities, Universitas Gadjah Mada in Yogyakarta, Indonesia. She outlined her research plans and discussed ethical dilemmas in conducting end-of-life research.
(re)Watch the record of 'I'm afraid it's rather bad news' debate night
Wednesday 9 February 2022 Annemarie Samuels and Liesbeth van Vliet co-organised a public debate night in De Balie called 'I'm afraid it's rather bad news'. During this event doctors, patients and other medical experts discussed the future of the bad news conversation. The evening has been recorded and can be now be viewed online.
Archives Select Month October 2022 (2) September 2022 (1) July 2022 (2) June 2022 (2) April 2022 (1) March 2022 (3) February 2022 (1) January 2022 (1) November 2021 (5) September 2021 (1) August 2021 (1) July 2021 (1) June 2021 (1) May 2021 (1) April 2021 (1) March 2021 (2) February 2021 (2) November 2020 (3)
Categories Select Category Events (18) In the media (2) News (12)
Institute of Cultural Anthropology
and Development Sociology
Wassenaarseweg 52
2333 AK Leiden
a.samuels@fsw.leidenuniv.nl
Illustrations by margriet osinga
Website design by Hayate Ait Bouzid

redpajama_set_name: RedPajamaCommonCrawl