【问题标题】:Search on website with python and requests使用 python 和 requests 在网站上搜索
【发布时间】:2015-07-16 01:22:36
【问题描述】:

来自搜索字段的输入:

<form class="search-form"     
action="http://services.runescape.com/m=itemdb_rs/results#main-search" method="post">
<input class="text" placeholder="Search..." name="query" required="" type="search"> 
<input class="search-submit" value="Search" type="submit">

我有这个脚本,但它不会为我执行搜索...知道为什么吗?

import requests
from bs4 import BeautifulSoup
url = 'http://services.runescape.com/m=itemdb_rs/'
body = {'Search':'rune'}
s = requests.Session()
log = s.get(url)
with requests.Session() as s:
    con = s.post('http://services.runescape.com/m=itemdb_rs/results#main-search', data=body)
    print (con.text)

【问题讨论】:

    标签: python-3.x python-requests


    【解决方案1】:

    两个小修正,代码对我有用:

    import requests
    
    body = {'query':'rune'} # <-- use 'query' not `Search'
    
    con = requests.post('http://services.runescape.com/m=itemdb_rs/results#main-search', data=body)
    print (con.content) # <-- print .content not .text
    

    【讨论】:

    • 不使用url为什么要定义?
    • @alfasin 你不知道我有多感谢你!!注意:我正在运行一台非常强大的计算机,但是当我运行加载包含大量数据的页面的脚本时,我的 python 变白并且不响应。这就是说,如果您有第二个关于 requests 模块的信息(您似乎很了解),您认为有办法与您联系吗
    • @Sait 保留了原始脚本 - 很好 - 清理了它。
    • @Sait 你是对的,但我认为我必须先创建一个获取请求,然后使用“新”url 发出一个发布请求(如果有新的)
    • @bob 在这里发布一个问题 - 有人会接它;)
    猜你喜欢
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多