我正在尝试创建一个基于特定网站的刮除的文本的from云。我遇到的问题是网络抓取部分。我尝试了两种不同的方法,而这两种尝试都被困在了如何继续前进的道路上。
第一种方法:将每个特定标记的数据刮到自己的数据帧中。
main_content= soup.find("div", attrs= {"class" : "col-md-4"})
main_content2= soup.find("article", attrs= {"class" : "col-lg-7 mid_info"})
comp_service= soup.find("div", attrs= {"class" : "col-md-6 col-lg-4"})
在这里,我被困在如何将三个数据文件添加到一起,以便创建单词云。如果我只使用其中一个DF并将其添加到'lists‘中,这会很好,但我不知道如何将其他两个添加到一个DF中,然后运行其余的代码。以下是“云药剂”一词的其余代码:
str = ""
for list in lists:
info= list.text
str+=info
mask = np.array(Image.open("Desktop/big.png"))
color= ImageColorGenerator(mask)
wordcloud = WordCloud(width=1200, height=1000,
max_words=400,mask=mask,
stopwords=STOPWORDS,
background_color="white",
random_state=42).generate(str)
plt.imshow(wordcloud.recolor(color_func=color),interpolation="bilinear")
plt.axis("off")
plt.show()
我找到了一段代码,它可以从特定的标记中提取所有数据,并将其放入文本中。
i = 0
for lists in soup.find_all(['article','div']):
print (lists.text)
但是,当我试图运行其余代码时,
mask = np.array(Image.open("Desktop/big.png"))
color= ImageColorGenerator(mask)
wordcloud = WordCloud(width=1200, height=1000,
max_words=400,mask=mask,
stopwords=STOPWORDS,
background_color="white",
random_state=42).generate(str)
plt.imshow(wordcloud.recolor(color_func=color),interpolation="bilinear")
plt.axis("off")
plt.show()
我得到'ValueError:我们至少需要一个词来绘制一个字云,得到0‘运行wordcloud代码之后。
实际上,我只是试图从一个网站中提取所有的数据,将这些信息存储到一个文本文件中,然后将这些数据转换成一个字云。
请让我知道任何建议或澄清,我可以提供。
谢谢。
发布于 2019-11-21 11:19:48
最后这件事为我工作
lists = soup.find_all(['article','div'])
str = ""
for list in lists:
info= list.text
str+=info
https://stackoverflow.com/questions/58966448
复制相似问题