无法抓取某些仅存在于F12菜单中的HTML元素

问题描述 投票:0回答:1

我对Python还很陌生,正在尝试爬行一个经常刷新自身的网站(这导致我尝试爬行的元素具有不稳定的指针)并且源代码中不存在目标元素。 Source CodeHTML marked out are targetted elements。 如果您需要链接,其:http://www.beijingrtj.com/

当我尝试使用时:

html = r.get(url).text
soup = bs(html, 'html.parser')
data = soup.find_all('b').text

它只返回了一个 AttributeError 给我: AttributeError:ResultSet 对象没有属性“文本”。您可能将元素列表视为单个元素。当你想调用 find() 时,你调用了 find_all() 吗?

然后我尝试对数据使用 list() ,它向我返回一个空列表。除了request和BeautifulSoup我还能用什么?

python html web-crawler
1个回答
0
投票

您在页面上看到的数据是通过 Javascript 从外部 URL 加载的。您可以使用

requests
模块来模拟此调用:

import requests

url = "http://www.beijingrtj.com/admin/get_price5.php?=&t=1697284159486"

response = requests.post(url)
_, *data, time = response.text.split(",")

i = iter(data)
for col1, col2 in zip(i, i):
    print(f"{col1:<10} {col2:<10} {time:<10}")

打印:

460.80     461.80     19:54:07  
5.500      5.630      19:54:07  
210.7      212.8      19:54:07  
277.0      280.0      19:54:07  
0.0        0.0        19:54:07  
459.65     344.22     19:54:07  
198.8      267.3      19:54:07  
© www.soinside.com 2019 - 2024. All rights reserved.