2

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.parsehttps://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). それでも、コンテンツと発行日を取得できません。

4

0 に答える 0