首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初学者Python抓取

初学者Python抓取
EN

Stack Overflow用户
提问于 2022-02-07 10:31:45
回答 2查看 78关注 0票数 -1

我是蟒蛇的初学者。我正在做一个网络抓取项目。在这个项目中,我想从剑桥词典中查找一些单词的意义和词性,并将它们导出到excel中。

这是我的密码:

代码语言:javascript
复制
pip install bs4
pip install requests
from bs4 import BeautifulSoup
import requests
headers = {"User-Agent" : "xxxxxxx"}
r=requests.get('https://dictionary.cambridge.org/dictionary/english/happy', headers=headers)
soup = BeautifulSoup(r.text,'html.parser')
POS = soup.find_all("span", class_="pos dpos")
print(POS)

结果:[<span class="pos dpos" title="A word that describes a noun or pronoun''.>adjective</span>, <span class="pos dpos" title="A word that describes a noun or pronoun.''>adjective</span>]

结果,我只想得到“形容词”这个词。但我不知道怎么做,有人能帮我吗?非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2022-05-30 13:04:52

首先:从脚本中删除pip install命令。只需要安装一次库。然后,您可以通过导入它来使用它,就像在第3和第4行中所做的那样。

您已经在代码中使用了要查找的命令。这是.text。将您的span存储在变量中,然后通过varname.text调用它。

票数 0
EN

Stack Overflow用户

发布于 2022-06-08 20:28:52

同意另一个答案,你应该删除以下两行:

代码语言:javascript
复制
     pip install bs4
     pip install requests

因为他们不需要。此外,您的问题是,变量POS是一个列表,带有2个"span“标记。你能做的是,遍历列表,每次打印出内容。如下所示:

代码语言:javascript
复制
    for div in POS: 
        print(div.text) 

这应该打印两次“形容词”,每一个元素一次,如果您只想为特定的div打印它,您将需要通过索引访问它,但是您可以再次调用".text“来获取文本。

获取列表的原因是,在调用find_all时,通过类名,您将得到返回的列表,因为类名并不是HTML元素独有的。

希望这会有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71017032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档