gpt4 book ai didi

javascript - 使用 python 迭代获取查询的不同页面

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:01 24 4
gpt4 key购买 nike

我正在尝试使用 python 解析一系列 html 页面,但我在以迭代方式获取页面时遇到问题。网页的链接。

Milano Library

查看源代码后,我发现了一个响应下一页按钮元素上的单击事件的函数。

 function SaltaAPagina() {
var CalcPag = VAIAPAGINA.value;
if (CalcPag > 0) {
CalcPag=CalcPag;
}
else {
CalcPag="1";
}
document.location = "/OPACMI01/cat/SDW?W=CODICE_BIBLIO+%3D+%27LO1+01%27+AND+EDITORE+PH+WORDS+%27sonzogno%27+AND+DATA_PUBBLICAZIONE+%3C+1943+ORDER+BY+ORDINAMENTO/Ascend&M=" + CalcPag + "&R=Y";
}

我知道我可以使用 python urllib2 模块使用 urlencode 方法对参数进行编码。但我不确定应该包含什么作为参数

lomba_link='http://www.biblioteche.regione.lombardia.it/OPACMI01/cat/SDW?W%3DCODICE_BIBLIO+%3D+%27LO1+01%27+AND+EDITORE+PH+WORDS+%27sonzogno%27+AND+DATA_PUBBLICAZIONE+%3C+1943+ORDER+BY+ORDINAMENTO/Ascend%26M%3D1%26R%3DY'
params = urllib.urlencode([('CalcPag',4)])
# this has not worked.
req = urllib2.Request(lomba_link)
print req
response = urllib2.urlopen(req,params)
html_doc = response.read()

我在这里缺少什么?

谢谢

最佳答案

您发布的 JavaScript 函数正在向目标页面传递几个参数:

document.location = "/OPACMI01/cat/SDW" + // This is the path of the page
"?W=CODICE_BIBLIO+%3D+%27LO1+01%27+AND+EDITORE+PH+WORDS+%27sonzogno%27+AND+DATA_PUBBLICAZIONE+%3C+1943+ORDER+BY+ORDINAMENTO/Ascend" + // The first parameter
"&M=" + CalcPag + // The second parameter
"&R=Y"; // The third parameter

在您的代码中,您已对 URL 中的所有 &= 符号进行了编码,因此您传递的是一个没有值的长参数 -将这些符号改回 javascript 函数中的符号应该可以解决问题。

lomba_link='http://www.biblioteche.regione.lombardia.it/OPACMI01/cat/SDW'
params = urllib.urlencode([
('W', 'CODICE_BIBLIO+%3D+%27LO1+01%27+AND+EDITORE+PH+WORDS+%27sonzogno%27+AND+DATA_PUBBLICAZIONE+%3C+1943+ORDER+BY+ORDINAMENTO/Ascend'),
('M', 4),
('R', 'Y')
])

关于javascript - 使用 python 迭代获取查询的不同页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13300894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com