Чтобы получить содержимое Wikipedia страницы без разметки, можно использовать MediaWiki API:
$ curl 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&explaintext&titles=Java_%28programming_language%29' |
jq -r '.. | .extract? | select(. != null)'
Basic jq usage. How to get nested value.
На Питоне:
#!/usr/bin/env python3
import json
from urllib.parse import quote as urlquote
from urllib.request import urlopen
title = 'Java (programming language)'
url = ("https://en.wikipedia.org/w/api.php"
"?format=json&action=query&prop=extracts&explaintext"
"&titles=" + urlquote(title))
with urlopen(url) as response:
data = json.loads(response.read().decode())
for page in data['query']['pages'].values():
print(page['extract'])
Если есть желание вызвать curl команду прямо из Питона:
import subprocess
json_text = subprocess.check_output(['curl', url], encoding='utf-8')
См. Перенаправление вывода терминала в переменную. Можно pycurl библиотеку использовать: пример.
В более общем случае, если нет у сайта явного или неявного (подсмотренного) API, то curl, который может только вернуть ответ http-сервера, не сможет текст без html разметки вернуть. curl команда это не браузер и в частности не является html-парсером или javascript интерпретатором. То есть curl никак не поможет, если содержимое генерируется на лету в javascript или с разбором полученной html разметки. В этом другие инструменты могут помочь: Как парсить html страничку с JavaScript в python 3?
Наивные regex могут легко сломаться при разборе html: Is ">" (U+003E GREATER-THAN SIGN) allowed inside an html-element attribute value?
Удобно текст из html выбрать, используя beautifulsoup4:
import bs4 # $ pip install beautifulsoup4
soup = bs4.BeautifulSoup(html, 'html.parser')
print(soup.get_text())
В реальных примерах, стоит исключить содержимое <script>, <style> элементов. Есть специализированные инструменты для чистки html, к примеру,
lxml.html.clean.
Стоит различать удаление всей разметки из html документа и получение текста, который можно безопасно вставить в другой html документ.