用美丽的汤在iframe内刮擦

时间:2018-09-25 13:29:03

标签: 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)

1 个答案:

答案 0 :(得分:1)

漂亮的汤是纯HTML解析器。它不是浏览器的包装。

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

>

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