从BeautifulSoup extract在Python中创建数据帧
我能够使用BeautifulSoup从web上提取数据和单词列表。数据收集在组件同义词[i].text中。但是,当我想将提取的数据转换为数据帧时,我会将单词拆分为字母,而不是完整的单词。如何将数据转换为适当数据框中的适当单词列表,即“analysis”等单词在数据框中作为“analysis”,而不是拆分为“a”、“n”、“a”、“l”、“y”、“s”、“e”从BeautifulSoup extract在Python中创建数据帧,python,pandas,list,dataframe,Python,Pandas,List,Dataframe,我能够使用BeautifulSoup从web上提取数据和单词列表。数据收集在组件同义词[i].text中。但是,当我想将提取的数据转换为数据帧时,我会将单词拆分为字母,而不是完整的单词。如何将数据转换为适当数据框中的适当单词列表,即“analysis”等单词在数据框中作为“analysis”,而不是拆分为“a”、“n”、“a”、“l”、“y”、“s”、“e” import requests from bs4 import BeautifulSoup import pandas as pd pag
import requests
from bs4 import BeautifulSoup
import pandas as pd
page = requests.get("https://www.wordhippo.com/what-is/another-word-for/guard.html")
soup = BeautifulSoup(page.content, 'html.parser')
keyword = "guard"
synonyms = soup.select('.relatedwords')
for i in range(0, 1):
print ('synonyms section ' + str(i + 1))
print pd.DataFrame((list(synonyms[i].text)))
#Output that I need to convert into a DataFrame
synonyms section 1
fighter
trooper
warrior
serviceman
#The Output I am getting in the list
提前感谢。我想您需要先删除第一个和最后一个\n,然后拆分单词列表:
for i in range(0, 1):
print ('synonyms section ' + str(i + 1))
print (pd.DataFrame({'text': synonyms[i].text.strip().split()}))
text
0 guardian
1 custodian
2 warden
3 keeper
4 sentry
.. ...
211 soldier
212 park
213 ranger
214 more
215 ❯
[216 rows x 1 columns]
如果需要将所有值添加到DataFrame,请使用extend方法将列表添加到L列表,然后在循环外部调用DataFrame构造函数:
L = []
for i, syno in enumerate(synonyms):
print ('synonyms section ' + str(i + 1))
L.extend(syno.text.strip().split())
df = pd.DataFrame({'text':L})
print(df)
text
0 guardian
1 custodian
2 warden
3 keeper
4 sentry
...
7667 Languages
7668 g
7669 gu
7670 gua
7671 guar
[7672 rows x 1 columns]
把这个词记在单子上
syno_list = list()
for i, syno in enumerate(synonyms):
print ('synonyms section ' + str(i + 1))
word_list = syno.text.strip().split()
syno_list.append(word_list)
print(word_list)
请从下一页重复和。演示如何解决这个编码问题?与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的特定问题。您还需要指定您的问题。为初学者显示输入和所需输出。没有理由在你的帖子中包含请求和BeautifulSoup,因为它们不是你问题的一部分。只需对“同义词”的示例列表进行硬编码,然后从中提问即可。@Prune。我正在使用beautifulsoup提取数据。但我会添加一个硬编码列表,如果这样做更容易。谢谢你帮我解答我的问题。我进一步更新了我的问题。谢谢你帮我构思我的问题。我投票赞成重新开放,因为答案经过编辑/改进。非常感谢@jezrael!这就解决了我的问题。谢谢你帮我处理这个@Ferris。