我正在尝试从报纸网站 Khaleej Times ( https://www.khaleejtimes.com ) 上刮下新闻文章的标题并将它们存储在 CSV 文件中
顺序如下:我刮掉它们(理论上),打印出来(冗余和浪费时间,我知道),将它们附加到列表中,打印出列表(只是为了检查列表是否真的有任何东西),将列表转换为 Pandas 数据框,最后将数据框转换为 CSV 文件
但是,每次我运行代码时,列表中都没有附加任何内容,因此我的 DataFrame 和 CSV 文件为空。有时会出现一两个文章标题,但大多数时候它是空的。
注意:我唯一感兴趣的是文章标题,而不是文本
我有更多关于此任务的问题,但我会将它们保存到单独的帖子中
我尝试的一件事是从 URL 中删除 HTTPS 并使其成为 HTTP 以及摆脱 www。如果有的话,那并没有太大的作用
from newspaper import Article
import newspaper
import csv
import pandas as pd
url = 'http://khaleejtimes.com'
a = newspaper.build(url)
titles = [] # initialize an empty list of titles
for article in a.articles:
article.download() # download the article
article.parse() # parse the article
# print(article.title) print the title
titles.append(article.title) # append the title to the list
for i in range(len(titles)): # initialize a for loop
print(titles[i]) # to print the titles within the titles list
TitleDF = pd.DataFrame({'Title': titles}) # convert the titles list to a
pandas DataFrame
print(TitleDF) # print the DataFrame
TitleDF.to_csv('KhaleejArticles.csv', encoding='utf-8', sep="\n")
# Convert the DataFrame to csv format
我希望 print(TitleDF) 的输出是两列:一列带有索引 (0, 1, 2... n) 和 Titles (专门的文章标题)。
然而,有几次,要么是重复了几个标题,要么是很少的标题,而且大多数情况下根本没有标题。
我究竟做错了什么?据我所知,这不是语法错误