Webscraping весь сайт облако слов панды - PullRequest
0 голосов
/ 21 ноября 2019

Я пытаюсь создать облако слов на основе записанного текста с определенного веб-сайта. Проблема, с которой я столкнулся, связана с этимЯ пытался двумя разными способами, и обе попытки я застрял на том, как действовать дальше.

Первый метод: скопируйте данные для каждого конкретного тега в отдельный фрейм данных

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.

По сути, я просто пытаюсь извлечь все данные с веб-сайта, сохранить эту информацию в текстовом файле, а затем преобразовать эти данные в облако слов.

Пожалуйста, дайте мне знать о любых предложениях или разъяснениях, которые я могу предоставить.

Спасибо.

...