Анализатор Python HTML не возвращает ссылку - PullRequest
0 голосов
/ 29 мая 2018

Я пытался разобрать RSS-ленту новостей, и мне удалось получить большинство полей, кроме ссылки на статью и дату публикации.Это мой код:

import bs4
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen
import re
#import xml.etree.ElementTree as ET

rss_url="https://news.google.com/news/rss/search/section/q/australia/australia?hl=en-AU&gl=AU&ned=au"
Client=urlopen(rss_url)
xml_page=Client.read()
Client.close()
soup_page=soup(xml_page,"html.parser")
#soup_page=ET.parse(xml_page)
news_list=soup_page.findAll("item")
# Print news title, url and publish date
for news in news_list:
  #text=news.text
  title=news.title.text
  link=news.link.text
  pubdate=news.pubDate.text
  description=news.description.text
  publisher = re.findall('<font color="#6f6f6f">(.*?)</font>', description)
  article_link=link
  article_info=[title,publisher,link,pubdate]
  print(article_info)

Я получил большинство полей, кроме pubdate и link.Есть идеи, что может помочь?Большое спасибо!

1 Ответ

0 голосов
/ 29 мая 2018

Относительно полей pubDate и link:

Поле pubDate можно получить, используя все строчные буквы:

pubdate=news.pubdate.text

Захвачено поле linkправильно с предыдущей версией Beautiful Soup, 4.5.3, но не в текущей версии 4.6.0.4.6.0 приводит к пустой строке, которую вы видите.Установите 4.5.3 со следующим:

$ pip3 uninstall beautifulsoup4
$ pip3 install 'beautifulsoup4==4.5.3'

Вот история выпуска Beautiful Soup.4.5.3 был выпущен 2 января 2017 года, а 4.6.0 - 7 мая 2017 года.

Я использую Python 3.6.0 в macOS.

Вот первые две строки с обновлением, показывающие все поля.

['Coalition party room split over national energy guarantee – politics live', ['The Guardian'], 'https://www.theguardian.com/australia-news/live/2018/may/29/nationals-barnaby-joyce-superannuation-coalition-banking-royal-commission-tax-politics-live', 'Mon, 28 May 2018 22:37:07 GMT']

['Residential rental agreements in Australia falling behind rest of the world: tenants union', ['ABC Online'], 'http://www.abc.net.au/news/2018-05-29/residential-rental-agreements-in-australia-need-updating/9809364', 'Mon, 28 May 2018 19:39:43 GMT']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...