我刚刚开始使用BeautifulSoup,一开始就遇到了障碍。我查阅了类似的帖子,但没有找到解决我特定问题的解决方案,或者有些根本性的问题我不了解。我的目标是从此页面中提取日语单词及其英语翻译和示例。
https://iknow.jp/courses/566921
并将它们保存在dataFrame或csv文件中。
我能够看到解析后的输出和一些标签的内容,但是每当我尝试用自己感兴趣的类请求某些内容时,都不会得到任何结果。首先,我想获取日语单词的列表,并且我认为我应该可以做到:
import urllib
from bs4 import BeautifulSoup
url = ["https://iknow.jp/courses/566921"]
data = []
for pg in url:
r = urllib.request.urlopen(pg)
soup = BeautifulSoup(r,"html.parser")
soup.find_all("a", {"class": "cue"})
但是当我搜索响应字段时,我什么也没得到:
responseList = soup.findAll('p', attrs={ "class" : "response"})
for word in responseList:
print(word)
我试图通过找到孩子来使树下移,但找不到想要的文字。感谢您的帮助。这是我要提取的字段:
在jxpython的大力帮助下,我现在遇到了一个新的挑战(也许这应该是一个新线程,但是它很相关,所以在这里也许还可以)。我的目标是创建一个数据框或一个csv文件,每行包含一个日语单词,翻译和带音译的示例。使用以下方式创建列表:
driver.find_elements_by_class_name()
driver.find_elements_by_xpath()
我得到的元素数量不同的列表,因此不可能轻松地创建一个数据框。
# len(cues) 100
# len(responses) 100
# len(transliterations)279 stramge number because some words don't have transliterations
# len(texts) 200
# len(translations)200
音译列表包含单个单词和句子的音译组合。我认为,要获取内容以填充数据框的第一行,我将需要遍历
<li class="item">
content(xpath?#/ html / body / div 2 / div / div / section / div / section / div / div / ul / li 1),并针对每个提取单词翻译,句子和音译...我不确定这是否是最好的方法...
例如,我希望在数据框的第一行(从屏幕快照中突出显示的框中)具有的信息是:
行く,いく,去,日曜日は図书馆に行きます。,にちようびとしょかんいきます。,周日我去图书馆。 summerにールにいった。,暑假期间我去了游泳池。
答案 0 :(得分:1)
您要抓取的标签不在源代码中。可能是因为页面是JavaScript呈现的。试试这个网址看看自己:
查看源:https://iknow.jp/courses/566921
Python模块Selenium解决了此问题。如果您愿意,我可以为您编写一些代码。
下面是一些代码:
function main() {
getPosition().then(function(response){
return response;
});
}
console.log(main());
注意:您首先需要安装Web驱动程序。我选择铬。 这里是一个链接:https://chromedriver.storage.googleapis.com/index.html?path=2.41/。还要将此添加到您的路径中! 如果您还有其他问题,请通知我!