我试图从这网站上刮一些闪存卡,但我有一些问题。下面是我的代码片段:
# point to the right link and chapter
url_main = r'https://learninglink.oup.com/access/content/neuroscience-sixth-edition-student-resources/neuroscience-6e-chapter-1-flashcards?previousFilter=tag_chapter-'
chapter = '01'
url_main = url_main + chapter
# get source
html = requests.get(url_main).text
bs = BeautifulSoup(html, features="html.parser")如果我查看Chrome上的页面,我可以看到我正在寻找的信息是在class="box1text“中。所以我想:
# get class
text = bs.find(class_ = "box1text" )但是,当我打印这个“文本”变量时,我得到:
<span aria-live="assertive" class="box1text"></span>也不提我要找的课文。我做错了什么?
另外,我想知道如何与这个容器和它的按钮交互,但我甚至不知道从哪里开始。我的理想输出将是包含所有关键字和相关答案的字典(因此,每张卡片的前后),但要做到这一点,我需要能够与这个容器交互。对怎么做有什么建议吗?
提前感谢!
发布于 2021-07-25 04:22:24
我知道这不能回答你的问题,但实际上有一个更好的方法来解决这个问题。
如果您进入浏览器的devTools侧边栏并检查网络日志,您将看到发送了一个Http请求以获取所有闪存卡信息:

正如您所看到的,您所需要做的就是通过复制请求头并发送它来模拟这个http请求。因为我不使用python,所以我只会在windows命令提示符上使用cUrl。现在right clicking也可以这样做,当浏览器打开并单击'copy as Curl(cmd)'并粘贴到命令提示符中的任何内容时,您就会得到所需的文本,并且您应该可以轻松地读取所需的文本。

编辑:,您的帖子中的站点不需要在请求中发送任何附加参数,所以您应该可以只需:
curl "https://learninglink.oup.com/protected/files/content/flashcardCsv/1512079199667-Neuroscience6e-ch01_flashcards.csv"您可以将其复制并粘贴到cmd中,以便自己验证。
https://stackoverflow.com/questions/68515366
复制相似问题