3 回答
TA贡献1826条经验 获得超6个赞
我分析了网站发出的请求,发现您可以通过一个请求获取所有数据,即 json 内容:
import requests as r
from bs4 import BeautifulSoup
import json
url = "https://fnet.bmfbovespa.com.br/fnet/publico/abrirGerenciadorDocumentosCVM?cnpjFundo=11026627000138&idCategoriaDocumento=6&idTipoDocumento=45"
res = r.get("http://fnet.bmfbovespa.com.br/fnet/publico/pesquisarGerenciadorDocumentosDados?d=0&s=0&l=200&"+url.split("?")[1])
json_result = json.loads(res.text)
print(json_result)
注意:如果“recordsTotal”超过200,则需要再次请求,参数为“?d=0&s=200&l=200”,s代表start,l代表limit,始终保持200以一次抓取最大值要求。
TA贡献1865条经验 获得超7个赞
正如你所看到的,两个按钮之间的区别只是按钮的数量
//*[@id="tblDocumentosEnviados_paginate"]/span/a[1]
//*[@id="tblDocumentosEnviados_paginate"]/span/a[2]
如果你想迭代它,你可以简单地更改 xpath 中的数字
例如
for i in range(1, numberOfPages):
browser.find_element_by_xpath("//[@id="tblDocumentosEnviados_paginate"]/span/a["+str(i)+"]")
希望这能解决您想要做的事情
TA贡献1779条经验 获得超6个赞
正如你所看到的,两个按钮之间的区别只是按钮的数量
//*[@id="tblDocumentosEnviados_paginate"]/span/a[1]
//*[@id="tblDocumentosEnviados_paginate"]/span/a[2]
如果你想迭代它,你可以简单地更改 xpath 中的数字
例如
for i in range(1, numberOfPages):
browser.find_element_by_xpath("//[@id="tblDocumentosEnviados_paginate"]/span/a["+str(i)+"]")
希望这能解决您想要做的事情
添加回答
举报