1

我在网页上提交查询。查询需要几秒钟才能完成。只有完成后,它才会显示一个我想从中获取信息的 HTML 表格。假设这个查询最多需要 4 秒来加载。虽然我希望在加载数据后立即获取数据,但等待 4 秒然后从表中获取数据是可以接受的。

我遇到的问题是,当我发出 urlread 请求时,页面还没有完成加载。我尝试加载页面,然后发出睡眠命令,然后再次加载,但这也不起作用。

我的代码是

import urllib.request
import time

uf = urllib.request.urlopen(urlname)
time.sleep(3)
uf.decode('UTF-8')
text = uf.read()
print (text) 

我正在看的网页是http://bookscouter.com/prices.php?isbn=9781111835811(随意忽略有趣的教科书哈哈)

我在 Raspberry Pi 上使用 Python 3.X

4

1 回答 1

4

您想要的价格不在您正在检索的页面中,因此无论等待多少时间都不会让它们出现。相反,价格在加载后由该页面中的 JavaScript 检索。urllib模块不是浏览器,因此它不会为您运行该脚本。您需要弄清楚 AJAX 请求的 URL 是什么(快速查看源代码会给出很大的提示)并取而代之的是检索它。它可能是 JSON 格式,所以你可以使用 Python 的json模块来解析它。

于 2013-10-06T21:49:49.410 回答