- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 How Long to Beat 中抓取信息,如何在不将搜索词放入 URL 的情况下发出搜索请求?
为清楚起见编辑:
我面临的问题是网站没有使用类似http://www.howlongtobeat.com/search.php?s= 的东西search-term,因此我不能做类似的事情
url = 'http://www.howlongtobeat.com/search.php?s='
search_term = raw_input("Search: ")
r = requests.get(url + search_term)
换句话说,当您在搜索对话框中键入搜索词时,网站不会刷新,也不会显示 URL 的变化,因此我无法找到从网站外部进行搜索的方法。
如果我犯了语法错误,我很抱歉,英语不是我的母语。
最佳答案
这是因为页面是由AJAX requests驱动的- 它会自动更新而不会将您重定向到可见的 URL。
如果您在浏览器中打开开发人员工具 (F12) 并导航到网络面板,您会看到确实有请求发送到服务器。我输入“test2”并得到以下信息:
如您所见,请求被发送到如下所示的 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"
因此,为了使用此搜索表单,您应该向该 URL 发送一个 POST 请求,其中包含填充了您需要的任何值的变量“queryString”。
不过,我强烈建议向网站所有者询问有关 API 的信息。使用旨在供最终用户以自动化方式使用的公开可用表单引擎被认为是不道德的。
关于python - 如何从 HowLongToBeat.com 抓取信息?它不在 URL 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373343/
我是一名优秀的程序员,十分优秀!