使用POST在网页

时间:2017-01-25 14:22:23

标签: python html

我对Python很新,这是我第一次发布stackoverflow,作为一个开始的项目,我试图编写一个程序来收集来自不同网站的棋盘游戏的价格他们。作为其中的一部分,我尝试编写一个功能,使用网站的内置搜索功能来查找我输入的游戏所需的网页。

我目前使用的代码是:

    import requests

    body = {'keywords':'galaxy trucker'}
    con = requests.post('http://www.thirstymeeples.co.uk/', data=body)

    print(con.content)

我的问题是,它返回的网页不是我手动输入和搜索“Galaxy trucker”时所获得的网页。在网站上。

有问题的搜索表单的html是

   <form method="post" action="http://www.thirstymeeples.co.uk/">
    <input type="search" name="keywords" id="keywords" class="searchinput" value>
   </form>

我已经阅读了this但是,与我的不同之处似乎是搜索实际上出现在网页上,而在我看来,操作部分中提供的网址本身并不会显示搜索栏。在这个例子中,html中没有id关键字,而在我的情况下,这是否会产生影响?

1 个答案:

答案 0 :(得分:0)

索引页面上没有搜索表单,但是如果您从“游戏”页面(包含表单)进行“手动”搜索,则最终会显示一个包含此网址的页面:

  

http://www.thirstymeeples.co.uk/games/search/q?collection=search_games|search_designers|search_publishers&loose_ends=right&search_mode=all&keywords=galaxy+trucker

请注意,此页面确实采用了GET参数,如果您将keywords从“galaxy + trucker”更改为其他任何内容,则会获得更新的结果页面。 IOW,您想在http://www.thirstymeeples.co.uk/games/search/q处执行GET请求:

r = requests.get("http://www.thirstymeeples.co.uk/games/search/q", params={"keywords": "galaxy trucker"})
print(r.content)