python - 使用 python 填写文本类型的输入并按提交

标签 python html python-2.7 beautifulsoup

我有这个 html:

<input type="text" class="txtSearch">
<input type="submit" value="Search" class="sbtSearch">

我需要的是在文本字段中写入,然后单击使用 python 提交。输入标签不在 Form 内。我该怎么做?

最佳答案

您不必实际填充字段并“单击”提交。您可以模拟提交并获得所需的结果。

使用BeautifulSoup和 urllib 以及 Firefox 中的 firebug。使用 firebug 观察网络流量,并从提交正在进行的 HTTP POST 中获取 post 参数。创建一个字典并对其进行 url 编码。将它与您的网址请求一起传递。

例如:

from BeautifulSoup import BeautifulSoup
import urllib

post_params = {
    param1 : val1,
    param2 : val2,
    param3 : val3
        }
post_args = urllib.urlencode(post_params)

url = 'http://www.website.com/'
fp = urllib.urlopen(url, post_args)
soup = BeautifulSoup(fp)

参数 vals 将根据您尝试提交的内容而改变。在您的代码中做出适当的调整。

关于python - 使用 python 填写文本类型的输入并按提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166395/

相关文章:

python-2.7 - 属性错误 : 'module' object has no attribute 'cm'

python - 元素不可见错误(Python、Selenium)

python - Manage.py已添加到PYTHONPATH,但找不到

python - 如何在 DataFrame 中将单词与数字相乘?

html - Google Calendar API-403错误

javascript - video.js,在IE10上播放视频,但没有声音

html - 将文本置于图像左上角,顶部和左侧偏移百分比

python - NumPy 性能 : uint8 vs. float 和乘法与除法?

python - Django:如何获取对称多对多关系中引用的对象?

python - 在 Mayavi 中禁用 3D 散点图中的点缩放