2016-09-12 3 views
0

Я пытаюсь очистить некоторые данные, решил использовать механизацию совместно с beautifulsoup. Я должен ввести поле, которое я хочу найти в форме на этой веб-странице, затем нажмите кнопку поиска, чтобы перейти к следующей соответствующей странице, чей URL я хочу получить, чтобы очистить данные.Как отправить форму для получения URL-адреса следующей веб-страницы с помощью механизации?

Режим разработчика показывает следующий код для

форм-
<form name="topsearch" id="topsearch" method="get" onsubmit="javascript:return search_post();" action=""> 
     <input type="hidden" name="search_data" id="search_data" value=""> 
      <input type="hidden" name="cid" id="cid" value=""> 
      <input type="hidden" name="mbsearch_str" id="mbsearch_str"> 
      <input type="hidden" name="topsearch_type" id="topsearch_type" value="1"> 
      <input name="search_str" id="search_str" autocomplete="off" onkeyup="getAutosuggesion();" type="text" value="Search Quotes, News, NAVs..." onblur="if(this.value=='')this.value='Search Quotes, News, NAVs...';" onfocus="if(this.value=='Search Quotes, News, NAVs...')this.value='';if(this.value=='Search Quotes, News, NAVs...')this.value='';" class="txtsrchbox">  
      <div id="autosugg_mc" class="sugbx"></div> 
      <div class="PR srch_qote"> 
       <div class="srchdrp" id="srchR">Quotes</div> 
       <div id="srch" class="qubx"> 
        <ul class="qlist"> 
         <li><a onclick="tab_topser('1');getAutosuggesion();" id="tab1" href="javascript:void(0)" class="">Quotes</a></li> 
         <li><a onclick="tab_topser('2');getAutosuggesion();" id="tab2" href="javascript:void(0)" class="">NAVs</a></li> 
         <li><a onclick="tab_topser('5');" id="tab5" href="javascript:void(0)" class="">Commodities</a></li> 
         <li><a onclick="tab_topser('9');" id="tab9" href="javascript:void(0)" class="active">Futures</a></li> 
         <li><a onclick="tab_topser('3');getAutosuggesion();" id="tab3" href="javascript:void(0)" class="">News</a></li> 
         <li><a onclick="tab_topser('4');" id="tab4" href="javascript:void(0)" class="">Messages</a></li>          
         <li><a onclick="tab_topser('6');getAutosuggesion();" id="tab6" href="javascript:void(0)" class="">Notices</a></li> 
         <li><a onclick="tab_topser('7');" id="tab7" href="javascript:void(0)" class="">Videos</a></li> 
         <li><a class="" onclick="tab_topser('8');" id="tab8" href="javascript:void(0)">All</a></li> 
        </ul> 
       </div>     
      </div> 
      <a href="javascript:;" onclick="$('#topsearch').submit()" style="float:left;" class="btn_search"></a>  
      <div class="CL"></div> 
      </form> 

Я завалить форму с моим релевантным поиском пунктом using-

import pandas as pd 
import urllib2 
import BeautifulSoup as bs 
import mechanize 

baseURL = "someBaseURL" 
br = mechanize.Browser() 
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 


#Open the Website 
r = br.open(baseURL) 

#Selecting the first form of the page 
br.select_form(nr=0) 
print br.geturl() 

br.form['search_str'] = "Some Search" 
br.submit() 

print br.geturl() 

После отправки формы, то URL не измените URL-адрес, если он будет искать ту же строку на веб-сайте вручную.

Я получаю URL после отправки, как -

'baseURL?search_data=&cid=&mbsearch_str=&topsearch_type=1&search_str=Kiri+Industries' 

а если я представить вручную я получаю следующую страницу с URL -

'baseURL/stockpricequote/dyes-pigments/kiriindustries/KDC01' 

Это URL я должен быть способный очищать данные.

Это кнопка отправки с использованием javascript, которая не может быть вызвана с помощью механизации, если это проблема, как я могу заставить ее работать?

Любая помощь приветствуется, спасибо.

ответ

0

Похоже, по крайней мере, из моей аналогичной проблемы, что механизация вообще не обрабатывает Javascript. Попробуйте использовать селен, он хорошо обрабатывает javascript. Я строю свой сценарий на этом, я обновлю, если он решит мою проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^