首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python擦拭动态容器

Python擦拭动态容器
EN

Stack Overflow用户
提问于 2021-07-25 03:49:57
回答 1查看 68关注 0票数 2

我试图从网站上刮一些闪存卡,但我有一些问题。下面是我的代码片段:

代码语言:javascript
复制
# 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“中。所以我想:

代码语言:javascript
复制
# get class
text = bs.find(class_ = "box1text" )

但是,当我打印这个“文本”变量时,我得到:

代码语言:javascript
复制
<span aria-live="assertive" class="box1text"></span>

也不提我要找的课文。我做错了什么?

另外,我想知道如何与这个容器和它的按钮交互,但我甚至不知道从哪里开始。我的理想输出将是包含所有关键字和相关答案的字典(因此,每张卡片的前后),但要做到这一点,我需要能够与这个容器交互。对怎么做有什么建议吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-25 04:22:24

我知道这不能回答你的问题,但实际上有一个更好的方法来解决这个问题。

如果您进入浏览器的devTools侧边栏并检查网络日志,您将看到发送了一个Http请求以获取所有闪存卡信息:

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

编辑:,您的帖子中的站点不需要在请求中发送任何附加参数,所以您应该可以只需:

代码语言:javascript
复制
curl "https://learninglink.oup.com/protected/files/content/flashcardCsv/1512079199667-Neuroscience6e-ch01_flashcards.csv"

您可以将其复制并粘贴到cmd中,以便自己验证。

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

https://stackoverflow.com/questions/68515366

复制
相关文章

相似问题

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