Извлечение изображения с использованием газеты из HTML

#python #extract #python-newspaper #newspaper3k

#python #извлечение #python-газета #newspaper3k

Вопрос:

Я не могу загружать статьи, как это обычно делается, для создания экземпляра объекта Article, как показано ниже:

 from newspaper import Article
url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
article = Article(url)
article.download()
article.top_image
  

Однако я могу получить HTML из запроса. Могу ли я использовать этот необработанный HTML и каким-то образом передать его в газету, чтобы извлечь из него изображение? (ниже приведена попытка, но не работает). Спасибо

 from newspaper import Article
import requests
url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
raw_html= requests.get(url, verify=False, proxies=proxy)
article = Article('')
article.set_html(raw_html)
article.top_image
  

Комментарии:

1. почему это не работает? Какую ошибку вы получаете?

2. Я не могу ввести внутренний ключ сертификата SLL моей компании в свой запрос. Проблема рассматривается. Единственный обходной путь — сделать запрос вручную и передать verify=False , что дает мне необработанный HTML

Ответ №1:

Газета модуля Python позволяет использовать прокси, но эта функция не указана в документации модуля.


Доверенные лица с Газетой

 from newspaper import Article
from newspaper.configuration import Configuration

# add your corporate proxy information and test the connection
PROXIES = {
           'http': "http://ip_address:port_number",
           'https': "https://ip_address:port_number"
          }

config = Configuration()
config.proxies = PROXIES

url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
articles = Article(url, config=config)
articles.download()
articles.parse()
print(articles.top_image)
https://ewscripps.brightspotcdn.com/dims4/default/d49dab0/2147483647/strip/true/crop/400x210 0 8/resize/1200x630!/quality/90/?url=http://mediaassets.fox13now.com/tribune-network/tribkstu-files-wordpress/2012/04/national-news-e1486938949489.jpg
  

Запросы с доверенными лицами и Газетой

 import requests
from newspaper import Article

url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
raw_html = requests.get(url, verify=False, proxies=proxy)
article = Article('')
article.download(raw_html.content)
article.parse()
print(article.top_image) https://ewscripps.brightspotcdn.com/dims4/default/d49dab0/2147483647/strip/true/crop/400x210 0 8/resize/1200x630!/quality/90/?url=http://mediaassets.fox13now.com/tribune-network/tribkstu-files-wordpress/2012/04/national-news-e1486938949489.jpg
  

Ответ №2:

Прежде всего убедитесь, что вы используете python3 то, что вы запускали pip3 install newspaper3k раньше.

Затем, если вы получаете ошибки SSL с первой версией (как показано ниже)

/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py:981: InsecureRequestWarning: на хост отправляется непроверенный запрос HTTPS ‘fox13now.com ‘. Настоятельно рекомендуется добавить проверку сертификата. Смотрите: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings предупреждения.предупреждать(

вы можете отключить их, добавив

 import urllib3
urllib3.disable_warnings()
  

Это должно сработать:

 from newspaper import Article
import urllib3
urllib3.disable_warnings()


url = "https://www.fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/"
article = Article(url)
article.download()
print(article.html)
  

Запустите с python3 <yourfile>.py .


Установка HTML в статье самостоятельно не принесет вам большой пользы, так как таким образом вы ничего не получите в других полях. Дайте мне знать, если это устранит проблему или если появятся какие-либо другие ошибки!

Комментарии:

1. Причина, по которой я не могу загружать файлы с помощью Газет, заключается в том, что я использую корпоративный прокси. Я пытался внедрить SSL-сертификат множеством способов. Единственный способ, которым я могу пройти на данный момент, — это использовать verify=False в запросе, который, очевидно, придется изменить в дальнейшем. Я могу запускать газетные статьи summary в необработанном HTML, поэтому моя интуиция подсказывает, что я должен быть в состоянии получить изображение, также используя необработанный HTML.

2. Ах, это все усложняет. Можете ли вы использовать полнотекстовый текст? from newspaper import fulltext; html = requests.get(...).text; text = fulltext(html)

3. Да, я могу это сделать. Если вы запустите второй фрагмент кода, вы сможете проверить, какие функции из статьи работают с необработанным HTML, а какие нет.

4. Другим вариантом может быть добавление пользовательской версии статьи (см. Последний блок кода в этом блоге .