我如何从中获取信息HowLongToBeat.com?它不在URL中使用变量

2024-09-28 05:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从How Long to Beat中获取信息,如何才能在不必将搜索词放入URL的情况下请求搜索?在

为清晰起见进行编辑:

我面临的问题是,这个网站不使用http://www.howlongtobeat.com/search.php?s=搜索词,因此我不能这样做

url         = 'http://www.howlongtobeat.com/search.php?s='
search_term = raw_input("Search: ")

r = requests.get(url + search_term)

换句话说,当你在搜索对话框中输入搜索词时,网站不会刷新,也不会显示URL的更改,因此我无法找到从网站外部搜索的方法。在

很抱歉,如果我犯了语法错误,英语不是我的第一语言。在


Tags: tocomhttpurlsearch网站www情况
1条回答
网友
1楼 · 发布于 2024-09-28 05:25:35

这是因为页面是由AJAX requests驱动的-它会自动更新,而不会将您重定向到可见的URL。在

如果您在浏览器(F12)中打开“开发人员工具”并导航到“网络面板”,您将看到确实有一些请求发送到服务器。我输入了“test2”,得到了以下信息:

Screenshot from Developer Tools in Firefox

如您所见,请求被发送到一个如下所示的URL:http://www.howlongtobeat.com/search_main.php?t=games&page=1&sorthead=popular&sortd=Normal%20Order&plat=&detail=0。 我输入了“test2”,但它不见了。在

这是因为它是使用POST request发送的,例如参数嵌入在HTTP请求本身中,而不是URL中。当我导航到“开发工具”中的“Params”选项卡时,确实可以看到我的输入:

queryString: "test2"

因此,为了使用这个搜索表单,您应该向包含变量“queryString”的URL发送一个POST请求,其中包含您需要的任何值。在

不过,我强烈建议向网站所有者询问API。使用为最终用户自动使用而设计的公共表单引擎被认为是不道德的。在

相关问题 更多 >

    热门问题