Skip to content

Instantly share code, notes, and snippets.

@jhw
Last active October 24, 2019 14:01
Show Gist options
  • Save jhw/f2765d0e7e8637e020cf90798aa87158 to your computer and use it in GitHub Desktop.
Save jhw/f2765d0e7e8637e020cf90798aa87158 to your computer and use it in GitHub Desktop.
Russian news
justin@justin-XPS-13-9360:~/work/gists/f2765d0e7e8637e020cf90798aa87158$ python3 bbc_links.py 
- img: https://ichef.bbci.co.uk/news/200/cpsprodpb/15473/production/_109355178_hi057516604.jpg
  tags:
  - news
  text: 39 погибших в фуре в английском графстве Эссекс - граждане Китая
  url: https://www.bbc.com/russian/news-50154070
- img: https://ichef.bbci.co.uk/news/200/cpsprodpb/15CB1/production/_109356298_6ef9b12a-d608-49ab-b285-ee8925ead420.jpg
  tags:
  - features
  text: 'Рассказ нелегала: "Мы боялись, что водитель фуры включит морозильник"'
  url: https://www.bbc.com/russian/features-50170537
- img: https://ichef.bbci.co.uk/news/200/cpsprodpb/14D3C/production/_105480358_22-10.jpg
  tags:
  - news
  text: Возможного заказчика убийства следователя Шишкиной передали России
  url: https://www.bbc.com/russian/news-50167317
- img: https://ichef.bbci.co.uk/news/200/cpsprodpb/6364/production/_107144452_nusrat.jpg
  tags:
  - news
  text: 16 смертных приговоров за сожжение школьницы в Бангладеш
  url: https://www.bbc.com/russian/news-50166967

justin@justin-XPS-13-9360:~/work/gists/f2765d0e7e8637e020cf90798aa87158$ python3 bbc_content.py /russian/news-50156472
body:
- Чемпионка и медалистка двух Паралимпиад, бельгийская спортсменка Марике Вервот ушла
  из жизни в возрасте 40 лет, прибегнув к эвтаназии.
- Победительница и серебряный призер Лондонской паралимпиады-2012 и двукратная медалистка
  Паралимпиады в Рио-де-Жанейро 2016 года страдала прогрессирующей атрофией мышц -
  миопатией. Это неизлечимое заболевание вызывало у Вервот паралич ног, постоянные
  боли и судороги.
- Официальное согласие на эвтаназию, которая в Бельгии разрешена законом, она подписала
  еще в 2008 году.
- Городская администрация ее родного города Диеста заявила, что "ее выбор осуществился
  во вторник вечером".
- '"Иногда мне бывает очень, очень плохо: если у меня эпилептический приступ, я плачу.
  Кричу от боли. Мне нужно много обезболивающих", - рассказывала Марике Вервот в передаче
  радио Би-би-си 5 в 2016 году.'
import lxml.html, re, urllib.request, yaml
Endpoint="https://www.bbc.com"
def fetch_page(path):
url=Endpoint+path
return lxml.html.fromstring(urllib.request.urlopen(url).read())
def filter_body(doc):
items=[]
for div in doc.xpath("//div[@class='story-body__inner']"):
for p in div.xpath("p"):
items.append(" ".join(p.text_content().split()))
return items
if __name__=="__main__":
try:
import sys
if len(sys.argv) < 2:
raise RuntimeError("Please enter path")
path=sys.argv[1]
if not path.startswith("/russian"):
raise RuntimeError(":path is invalid")
doc=fetch_page(path)
body=filter_body(doc)
struct={"body": body}
print (yaml.safe_dump(struct, allow_unicode=True))
except RuntimeError as error:
print ("Error: %s" % str(error))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment