Python 我如何从HowLongToBeat.com上获取信息?它没有';不要在URL中使用变量

Python 我如何从HowLongToBeat.com上获取信息?它没有';不要在URL中使用变量,python,scrape,Python,Scrape,我正在尝试从中获取信息,如何在不将搜索词放入URL的情况下请求搜索 为清晰起见,请编辑: 我面临的问题是,网站没有使用类似的搜索词,因此我不能这样做 url = 'http://www.howlongtobeat.com/search.php?s=' search_term = raw_input("Search: ") r = requests.get(url + search_term) 换句话说,当您在“搜索”对话框中键入搜索词时,网站不会刷新,也不会在URL中显示更改

我正在尝试从中获取信息,如何在不将搜索词放入URL的情况下请求搜索

为清晰起见,请编辑:

我面临的问题是,网站没有使用类似的搜索词,因此我不能这样做

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

r = requests.get(url + search_term)
换句话说,当您在“搜索”对话框中键入搜索词时,网站不会刷新,也不会在URL中显示更改,因此我无法找到从网站外部进行搜索的方法


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

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

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

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

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

查询字符串:“test2”

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


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

我不熟悉该网站,但请注意,游戏页面的URL遵循一种模式,例如
http://www.howlongtobeat.com/game.php?id=1
id=19698
。如果你只是在寻找游戏数据(即不是用户),你可能会利用可预测的URL,通过迭代id的范围来抓取细节页面。你想抓取什么?哪几页?也许你可以找到一个模式并利用它?我会为Clarity编辑我不知道它被认为是不道德的(我可以问为什么吗?),我会在论坛上询问API。我想这是另一个问题的材料。关于程序员。