2012-10-31 71 views
7

我有这个网站:填充类型文本,然后按输入提交使用python

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

我需要的是在文本字段写,然后点击提交使用python。输入标签不在表格内。我怎么能做到这一点?

+0

我试图找到谷歌,但没有找到任何简单的例子......所有我能找到的是长的文件,我根本不能理解......我认为我需要使用机械化,但它需要形式...我应该告诉你什么? – a1204773

回答

12

您不应该实际填充字段并单击提交。您可以模拟提交并获得期望的结果。

使用BeautifulSoup和urllib与Firefox中的萤火虫一起使用。使用萤火虫观察网络流量,并从HTTP POST中获取提交为dong的发布参数。创建一个字典和网址编码它。将它与您的网址请求一起传送。

例如:

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) 

帕拉姆瓦尔斯将根据您尝试提交什么样的变化。在你的代码中做适当的调整。

5

如果你真的需要填充字段,这里有一个硒解决方案。不过,您通常只需要这些用于测试目的。

from selenium import webdriver 

webpage = r"https://www.yourwebsite.com/" # edit me 
searchterm = "Hurricane Sandy" # edit me 

driver = webdriver.Chrome() 
driver.get(webpage) 

sbox = driver.find_element_by_class_name("txtSearch") 
sbox.send_keys(searchterm) 

submit = driver.find_element_by_class_name("sbtSearch") 
submit.click() 
相关问题