Python 建立一个文本语料库,用于对特定主题的情绪分析:报纸3K是否能够完成几个月前的任务

Python 建立一个文本语料库,用于对特定主题的情绪分析:报纸3K是否能够完成几个月前的任务,python,pandas,web-scraping,beautifulsoup,data-science,Python,Pandas,Web Scraping,Beautifulsoup,Data Science,因此,我目前正试图为一个投资组合项目建立一个情绪分析数据集。我特别试图分析在主要视频游戏发行前后三个月里反复出现的情绪和话语。我不想在他们的论坛或任何未“发布”的东西中循环,所以我发现最好的方法是使用(基于BeautifulSoup4的)Newspapers3k刮库将他们的档案刮到熊猫中,并导出到csv,每个出版物和游戏都单独查询。然后,我可以使用单独的脚本来清理日期,因为Newspapers3k的表现非常好,它会删除我执行此操作所需的所有元数据 例如,我的开场白是检查流行游戏网站Polygon

因此,我目前正试图为一个投资组合项目建立一个情绪分析数据集。我特别试图分析在主要视频游戏发行前后三个月里反复出现的情绪和话语。我不想在他们的论坛或任何未“发布”的东西中循环,所以我发现最好的方法是使用(基于BeautifulSoup4的)Newspapers3k刮库将他们的档案刮到熊猫中,并导出到csv,每个出版物和游戏都单独查询。然后,我可以使用单独的脚本来清理日期,因为Newspapers3k的表现非常好,它会删除我执行此操作所需的所有元数据

例如,我的开场白是检查流行游戏网站Polygon上所有提到“Last of Us Part II”的文章。正如我所提到的,我不认为Newspapers3k可以设置开始日期或结束日期,因为它是通过中央集线器(通常是站点的文章集线器)的链接工作的,所以我将手动删除日期范围之外的所有内容

问题是:它只是停止了,没有回到多边形的历史上那么远的地方。我得到了非常好的数据——不,我不会因为太多的查询而被网站屏蔽,这对我来说是个例外。我的CSV中最早的一篇来自熊猫的文章是一周前的9月2日。我想把他们的文章追溯到二月底

我想继续使用Newspaper3k,因为它是一个非常好的解决方案,可以干净地清除数据。但似乎网页设计中的某些东西使它。。。停下来,在我切换到其他解决方案(可能是selenium,以防这是一个与Javascript相关的问题)之前,我想弄清楚是否还有其他原因导致它无法继续返回。同样,由于查询太多,服务器会阻止我,但在本例中没有抛出该错误

我发现有一个相当简单的解决方案可以解决这个人的问题,他们可以从他们停止的地方恢复抓取-但是他们也认为网站阻止了他们,我很确定在这个例子中没有发生这种情况

这是我正在使用的代码。我知道它也会产生很多很多的副本,但我不太关心这一点,因为我也可以编写一个脚本来清除这些副本。我很好奇是否有人能给我一点提示,为什么这不起作用

# created with assistance from https://towardsdatascience.com/the-easy-way-to-web-scrape-articles-online-d28947fc5979

import newspaper #parsing of news sources
from newspaper import Article #separate out specific parts of the text we want
from newspaper import Source # see previous line comment
import pandas as pd #dataframe for temporary data storage

polygon = newspaper.build('https://www.polygon.com/archives/2020/6', memoize_articles=False, number_threads=4)
gamespot = newspaper.build("https://www.gamespot.com//news/", memoize_articles = False, number_threads=4)

final_df = pd.DataFrame()
polygonTLOU=0

for each_article in polygon.articles:

    each_article.download()
    each_article.parse()
    each_article.nlp()

    temp_df = pd.DataFrame(columns = ['Title', 'Authors', 'Text',
                                    'Summary', 'published_date', 'Source'])

    temp_df['Authors'] = each_article.authors
    temp_df['Title'] = each_article.title
    temp_df['Text'] = each_article.text
    temp_df['Summary'] = each_article.summary
    temp_df['published_date'] = each_article.publish_date
    temp_df['Source'] = each_article.source_url
    if (each_article.text.find('Last of Us') != -1):
        final_df = final_df.append(temp_df, ignore_index = True)
        polygonTLOU = polygonTLOU+1
        print(polygonTLOU)
    else:
        print(polygonTLOU)

# From here you can export this Pandas DataFrame to a csv file
final_df.to_csv('my_scraped_articles.csv')


print(polygon.articles.size())

更新:我已经检查并修改了代码,更改了URL,使得多边形的删除可以追溯到2018年,但它遗漏了包含搜索关键字的关键文章(完全披露:情绪分析项目的灵感来自于我对这个游戏中的一个多边形片段的反应,所以我知道他们有一个评论,不是被刮掉的,而是另一个评论。)你知道我如何控制这个库,或者我可能做错了什么吗?