Pythonの新聞モジュールでニュース記事の内容を取得しようとしています。次のコードでニュース項目の本文を見つけることができます。このコードは、feed_url
変数内のフィード URL をfeedparserで解析してから、newsbodyモジュールでニュース本文と発行日を見つけようとします。
import newspaper
from newspaper import Article
import feedparser
import urllib.parse
count = 0
feed_url="https://www.extremetech.com/feed"
#feed_url="http://www.prothomalo.com/feed/"
d = feedparser.parse(feed_url)
for post in d.entries:
count+=1
if count == 2:
break
#post_link = post.link
post_link =urllib.parse.unquote(post.link) #Added later to decode the
# encoded URL into the original Bengali langauge
print("count= ",count," url = ",post_link,end="\n ")
try:
content = Article(post_link)
content.download()
content.parse()
print(" content = ", end=" ")
print(content.text[0:50])
print(" content.publish_date = {}".format(content.publish_date))
except Exception as e:
print(e)
feed_url
コード内の変数の 2 つの異なる値について言及しました。
たとえば、extremetechfeedparser.parse
が
https://www.extremetech.com/computing/263951-mit-announces-new-neural-network-processor-cuts-power-消費-95。そして、この URL のニュース本文テキストと公開日を簡単に取得できます。
しかし、たとえば prothomalo には、 http:feedparser.parse
//www.prothomalo.com/sports/article/1432086/%E0%A6%B8%E0%A6%B0%E0%A7%8D の URL (から取得) を持つニュース アイテムがあります。 %E0%A6%AC%E0%A7%8B%E0%A6%9A%E0%A7%8D%E0%A6%9A-%E0%A6%B8%E0%A7%8D%E0%A6%95% E0%A7%8B%E0%A6%B0-%E0%A6%97%E0%A7%9C%E0%A7%87%E0%A6%93-%E0%A6%B9%E0%A6%BE% E0%A6%B0 .
しかし、prothomalo の Web サイトでは、実際の URL はそのようには見えません。URL にアクセスすると、URL がベンガル語に変更されていることがわかります。このような暗号化された (?) URL の背後にある理由は、URL にベンガル語の部分が含まれているためだと思います。ここのコンテンツもベンガル語です。
Python 新聞モジュールは、prothomalo からではなく、extretemetech サイトからコンテンツと発行日を抽出できます。prothomalo URL に英語以外の文字が含まれていることが原因ですか?
prothomalo サイト (英語以外の URL を含むサイトなど) からニュース コンテンツ、発行日などを取得するにはどうすればよいですか?
編集 1:
prothomalo のエンコードされた URL を次の行で元のベンガル語にデコードできました : post_link =urllib.parse.unquote(post.link)
. それでも、コンテンツと発行日を取得できません。