python - Webscraping 整个网站熊猫词云
问题描述
我正在尝试根据从特定网站上抓取的文本创建一个 wordcloud 。我遇到的问题是网络抓取部分。我尝试了两种不同的方式,但两种尝试都让我陷入了如何继续前进的困境。
第一种方法: 将每个特定标签的数据刮到自己的数据框中
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 并将其添加到“列表”中,这可以正常工作,但我不确定如何将其他两个添加到单个 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()
尝试 2 我发现了一段代码,可以从特定标签中提取所有数据并将其放入文本中
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:我们需要至少 1 个词来绘制词云,得到 0。” 运行 wordcloud DF 代码后。
我基本上只是想从网站上提取所有数据,将这些信息存储到一个文本文件中,然后将这些数据转换成一个词云。
请让我知道我可以提供的任何建议或说明。
谢谢你。
解决方案
这最终为我工作
lists = soup.find_all(['article','div'])
str = ""
for list in lists:
info= list.text
str+=info
推荐阅读
- c# - Kafka .Net Produce 与 ProduceAsync
- android - 构建Android时如何修复警告缺少类:org.conscrypt.ConscryptHostnameVerifier
- google-apps-script - 使用 e.parameters 解析数据
- javascript - 开玩笑:TypeError:无法解构“_graphql.default”的属性“print”,因为它未定义
- java - 如何改造调用此 API GET 方法
- java - 如何重新启动 javafx 应用程序?
- python-3.x - 在 Numpy/OpenCV 中计算特定值的连接像素数
- c# - 如何使端点在 AND 基础上需要多个安全定义?
- git - 从 git 存储库中排除大文件
- javascript - Javascript基于数组值计算对象数组并将其用于本机反应