使用POST在网页上使用内置搜索表单

2024-10-01 09:25:17 发布

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

我对Python还比较陌生,这是我在stackoverflow上的第一篇文章,作为一个开始的项目,我正在尝试编写一个程序,从不同的出售棋盘游戏的网站收集棋盘游戏的价格。作为这一部分,我试图写一个功能,将使用一个网站的内置搜索功能,找到我想要的网页,我输入的游戏。你知道吗

目前我使用的代码是:

    import requests

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

    print(con.content)

我的问题是,它返回的网页不是我在网站上手动输入和搜索“银河卡车司机”时得到的网页。你知道吗

有问题的搜索表单的html是

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

我读过this,但对我来说,不同之处似乎是搜索实际上出现在网页上,而对我来说,操作部分提供的网址本身并不显示搜索栏。在这个例子中,html中没有id关键字,而在我的例子中有,这有区别吗?你知道吗


Tags: 功能http游戏网页棋盘网站wwwbody
1条回答
网友
1楼 · 发布于 2024-10-01 09:25:17

索引页上没有搜索表单,但如果您从“游戏”页进行“手动”搜索(该页没有表单),则会出现以下url页面:

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”更改为其他任何内容,您将得到一个更新的结果页面。你想在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)

相关问题 更多 >