对我是新来的网页抓取,只是使用BeautifulSoup开始。这是我的问题。在大多数情况下,呈现出意义的面板和语音出现在头版:BeautifulSoup并不返回所有的元素
当使用像“清晰界定”的搜索查询您查找在谷歌一个字以这样的方式。 (在嵌入式图像的左侧所示)
[谷歌为默认字典示例]
事情要刮掉并自动收集有含义的文字和网址其中存储了发音的mp3数据。手动使用Chrome检查器,这些很容易被其“元素”部分中,例如在发现,检查员(在图像的右侧示出)示出了URL,其存储的“清晰”的读音的MP3数据(here) 。
但是,使用请求获取搜索结果的HTML内容并使用BeautifulSoup解析它,如下面的代码所示,soup
仅在面板中获得少数内容,例如IPA“/luːsɪd/”和下面的结果一样,属性“形容词”,并且我不需要找到任何内容,比如音频元素中的东西。
?我怎样才能与BeautifulSoup的信息,如果可能的话,否则什么替代工具是非常适合这项工作?
P.S.我认为谷歌词典的发音质量要好于任何其他词典站点的发音质量。所以我想坚持下去。
代码:
import requests
from bs4 import BeautifulSoup
query = "define:lucid"
goog_search = "https://www.google.co.uk/search?q=" + query
r = requests.get(goog_search)
soup = BeautifulSoup(r.text, "html.parser")
print(soup.prettify())
的soup
内容部分:
</span>
<span style="font:smaller 'Doulos SIL','Gentum','TITUS Cyberbit Basic','Junicode','Aborigonal Serif','Arial Unicode MS','Lucida Sans Unicode','Chrysanthi Unicode';padding-left:15px">
/ˈluːsɪd/
</span>
</div>
</h3>
<table style="font-size:14px;width:100%">
<tr>
<td>
<div style="color:#666;padding:5px 0">
adjective
</div>
该解决方案完美适用于缺少音频文件和文本的含义。 –
好听!如果它有帮助,你能接受答案/ upvote吗?谢谢,祝你好运! – Andras
现在不显示upvote,因为我的声望低于15 lol。我不接受答案的原因是我想在不打开实际浏览器的情况下获取页面内容。我在最后的评论中没有提到这一点的原因是我认为我应该尝试[this](https://sqa.stackexchange.com/questions/2609/running-webdriver-without-opening-actual-浏览器窗口)首先由我自己。 –