2016-03-05 60 views
0

我的目標是自動化網頁搜索。我有一個填充的電子表格。使用Java或Python,我想將電子表格數據輸入到網頁的特定搜索欄中。使用Java或Python自動從Excel或CSV進行搜索

到目前爲止,我可以使用Java和Python打開網頁,但我無法弄清楚如何查詢特定的搜索字段。

有誰知道如何做到這一點?

謝謝!

回答

0

你打算做的事叫做:請求發送和是的,它可能在Java和Python中都有。

Java example

package com.mkyong; 

import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

import javax.net.ssl.HttpsURLConnection; 

public class HttpURLConnectionExample { 

    private final String USER_AGENT = "Mozilla/5.0"; 

    public static void main(String[] args) throws Exception { 

     HttpURLConnectionExample http = new HttpURLConnectionExample(); 

     System.out.println("Testing 1 - Send Http GET request"); 
     http.sendGet(); 

     System.out.println("\nTesting 2 - Send Http POST request"); 
     http.sendPost(); 

    } 

    // HTTP GET request 
    private void sendGet() throws Exception { 

     String url = "http://www.google.com/search?q=mkyong"; 

     URL obj = new URL(url); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

     // optional default is GET 
     con.setRequestMethod("GET"); 

     //add request header 
     con.setRequestProperty("User-Agent", USER_AGENT); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'GET' request to URL : " + url); 
     System.out.println("Response Code : " + responseCode); 

     BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     //print result 
     System.out.println(response.toString()); 

    } 

    // HTTP POST request 
    private void sendPost() throws Exception { 

     String url = "https://selfsolve.apple.com/wcResults.do"; 
     URL obj = new URL(url); 
     HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

     //add reuqest header 
     con.setRequestMethod("POST"); 
     con.setRequestProperty("User-Agent", USER_AGENT); 
     con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

     String urlParameters = "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345"; 

     // Send post request 
     con.setDoOutput(true); 
     DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
     wr.writeBytes(urlParameters); 
     wr.flush(); 
     wr.close(); 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'POST' request to URL : " + url); 
     System.out.println("Post parameters : " + urlParameters); 
     System.out.println("Response Code : " + responseCode); 

     BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 

     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 

     //print result 
     System.out.println(response.toString()); 

    } 

} 

Python example

編輯:在你寫你的請求發送者之前,研究瀏覽器和網站之間的通信是個好主意。查看您發送搜索的位置以及請求的類型。

相關問題