一位同事拿了这个网址:https://www.rbi.org.in/Scripts/BS_PressReleaseDisplay.aspx通过Javascript进行月/年分页(参见右边的元素)并且能够给我这个网址:
我可以将hdnYear之后的年份和hdnMonth之后的月份替换为任何年份和月份,它将直接将我带到该页面。我问他是怎么做到的,他说“我在Chrome开发工具中使用了网络选项卡。”这就是我能从他身上得到的一切。
有谁知道这是怎么做到的?例如,我现在尝试通过在更改页面时查看“网络”选项卡,以类似方式获取此网站每个页面的实际网址:http://www.ojk.go.id/id/regulasi/otoritas-jasa-keuangan/peraturan-dan-keputusan-dewan-komisioner/Default.aspx。我在那里看不到任何类似于上面例子的内容。
答案 0 :(得分:2)
这就是你提到的Chrome
网址的工作方式
Inspect
并转到您提供的URL Network
Network
标签。GET/POST
标签中,您会看到客户端(即浏览器)向服务器发出的Filter
个请求列表。Network
框(method:POST
标签左上角)中,输入搜索过滤器Name
。 POST
列中的条目。这将打开有关Form Data
请求的更多详细信息。向下滚动到标题为view encoded
。Form Data
部分hdnYear
按钮
hdnMonth
和view source
也在其中列出。您可以点击from ctypes import (windll, byref, c_void_p, c_char_p)
from multiprocessing import Process, current_process
def pread(argstring):
# get handle for device
usrp = c_void_p(0)
uhdapi = windll.uhd
p_str=c_char_p(argstring.encode("UTF8"))
errNo = uhdapi.uhd_usrp_make(byref(usrp),p_str)
if errNo != 0:
print("\r*****************************************************************")
print("ERROR: ",errNo," IN: ", current_process())
print("=================================================================")
if usrp.value != 0:
uhdapi.uhd_usrp_free(byref(usrp))
return
if __name__ == '__main__':
while True:
p2 = Process(target=pread, args=("",))
p1 = Process(target=pread, args=("",))
p1.start()
p2.start()
p1.join()
p2.join()
print("end")
答案 1 :(得分:1)
嗯,我真的无法告诉你如何在你想要的网站上完全重现这一点,但我可以告诉你你的同事做了什么。
在页面https://www.rbi.org.in/Scripts/BS_PressReleaseDisplay.aspx中:
就是这样,theres是你的同事给你的URL参数,你可以尝试在你要重现它的网站上点击另一个页面并搜索Default.aspx,但是你必须这样做找出每个参数的含义,找出哪一个是页码或你要查找的内容(在解析后的视图中查看以便于阅读)。
截图: http://prnt.sc/emsl2w http://prnt.sc/emsm2z
希望这会对你有所帮助。
答案 2 :(得分:0)
他发送给您的URL具有URL参数/查询字符串,由服务器读取,然后向您发送所选页面。
所以基本上服务器会查看请求并读取这些参数,这些参数最有可能被解析为某种方法,查询数据库然后为您返回结果。
如果您是链接网站的所有者,您可以实施此类解决方案,否则您将被卡住,因为它需要在后端进行编码。