html - 用 BeautifulSoup 在 iframe 内部抓取

标签 html python-3.x beautifulsoup screen-scraping

我正在使用 Beautifulsoup 进行抓取。

但由于价格目标在iframe中,所以无法获取目标。 目标如下。

<span class="last">1,025.5</span>

你能告诉我如何才能达到目标吗? 我的编码如下。

stock = ""

import requests
from bs4 import BeautifulSoup

url = 'https://www.xxxxxx.com/jp/ir/'
html = requests.get(url)

soup = BeautifulSoup(html.text,"html.parser")
span = soup.find_all("span")

for tag in span:
try:
    string_ = tag.get("class").pop(0)

    if string_ in "last":
        stock = tag.string
        break
except:
    nodata = "データが見つかりません"
    print (nodata)
    break

print(stock)

最佳答案

Beautiful soup 是一个普通的 HTML 解析器。它不是浏览器的包装器。

如果您想要的内容不属于您所请求的文档(例如,因为它是由 JavaScript 生成的或在 iframe 中加载的不同文档中),它不会自动为您获取。

要从 iframe 获取数据,您需要从您拥有的文档中读取 src 属性,然后向解析为的 URL 发出新的 HTTP 请求,然后解析该文档.

关于html - 用 BeautifulSoup 在 iframe 内部抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52499426/

相关文章:

java - 使用 Java 填充 HTML 文件中的占位符

html - 导航菜单的第一项有奇怪的高度

HTML/CSS - 将图像放在 img 之上?

Python十进制转二进制递归

regex - 将字符串拆分为辅音-元音序列

javascript - 单击按钮返回所有链接

python - 如何在日期间隔内添加缺失的日期?

python beautifulsoup iframe文档html提取

python - 本地 HTML 文件抓取 Urllib 和 BeautifulSoup

python - python中for行的语法错误