代码之家  ›  专栏  ›  技术社区  ›  Serial

使用机械化(Python)输入到站点

  •  0
  • Serial  · 技术社区  · 11 年前

    我正试图使用dictionary.com制作一个词典程序作为源代码,但在源代码中找不到搜索框的名称

    from mechanize import Browser
    
    inp = raw_input("Enter Word: ")
    Word = (inp)
    
    SEARCH_PAGE = "http://dictionary.reference.com/"
    
    browser = Browser()
    browser.open( SEARCH_PAGE )
    browser.select_form( nr=0 ) 
    
    browser['name of search form'] = Word
    browser.submit()
    

    有人能帮我做这件事吗?或者帮我在HTML源代码中找到搜索栏的名称吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   user2134086 user2134086    11 年前

    您可以使用Browser.forms()方法浏览表单。 这些形式中的每一种都有一个称为控件的变量, 表单中控件的列表。 此列表中的每个控件都有一个“name”变量。 正如您所知,您可以使用这些名称在浏览器中进行索引。

    from mechanize import Browser
    
    inp = raw_input("Enter Word: ")
    Word = (inp)
    
    SEARCH_PAGE = "http://dictionary.reference.com/"
    
    browser = Browser()
    browser.open( SEARCH_PAGE )
    
    form = list(browser.forms())[0]                        #The first form
    print form
    names = map(lambda n: n.name, form.controls)
    print names
    
    browser.select_form( nr=0 ) 
    
    browser[names[0]] = Word
    
    txt = browser.submit().read()
    
    #txt has the html from dictionary.reference.com