安卓手機如何加網頁爬取
1. android怎麼獲取網頁數據
下面介紹三種獲取網頁數據的代碼
例子來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼
//第一種
/**獲取參數(ArrayList<NameValuePair> nameValuePairs,String url)後post給遠程伺服器
* 將獲得的返回結果(String)返回給調用者
* 本函數適用於查詢數量較少的時候
*/
public String posturl(ArrayList<NameValuePair> nameValuePairs,String url){
String result = "";
String tmp= "";
InputStream is = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
return "Fail to establish http connection!";
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
tmp=sb.toString();
}catch(Exception e){
return "Fail to convert net stream!";
}
try{
JSONArray jArray = new JSONArray(tmp);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Iterator<?> keys=json_data.keys();
while(keys.hasNext()){
result += json_data.getString(keys.next().toString());
}
}
}catch(JSONException e){
return "The URL you post is wrong!";
}
return result;
}
//第二種
/**獲取參數指定的網頁代碼,將其返回給調用者,由調用者對其解析
* 返回String
*/
public String posturl(String url){
InputStream is = null;
String result = "";
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
return "Fail to establish http connection!"+e.toString();
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
return "Fail to convert net stream!";
}
return result;
}
//第三種
/**獲取指定地址的網頁數據
* 返回數據流
*/
public InputStream streampost(String remote_addr){
URL infoUrl = null;
InputStream inStream = null;
try {
infoUrl = new URL(remote_addr);
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
inStream = httpConnection.getInputStream();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return inStream;
2. 安卓怎麼嵌入web本地網頁
第一步:
存放本地html文件:放在app/src/main/assets目錄下,一般來說Androidstudio項目下是沒有assets文件夾的,所以需要在app/src/main下新建一個文件夾,取名assets.如圖:
新建文件夾assets
2.第二步就在在你的xml布局文件中,假如webview元素,接著訪問本地的html文件,功能很簡單,代碼如下:
WebView webview = (WebView)findViewById(R.id.webview);
webview.loadUrl("file:///android_asset/normal.html");
3. 在安卓手機上網頁源碼如何用
操作方法如下:
1、首先打開手機,找到並點擊進入設置,如下圖所示。
4. 如何在安卓app中加入一個網頁爬取功能
jsoup 支持html完整解析,如果使用httprequest,原生的話需要自己解析xml,通過httpconnection。
5. 如何直接在安卓手機上讀取app中打開的網頁的url
PackageManager mPackageManager = getPackageManager();
mPackageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES );
這樣就獲取到了系統上面所有的app.
那麼如何獲取到非系統的app呢?
其實很簡單,我們只需要做個簡單的判斷就行了,如:
final PackageInfo packageInfo = mPackageInfoList.get(i);
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
//添加自己的代碼即可
6. 怎麼提取安卓軟體中的某個網頁
建議下載一個瀏覽器,每次打開網頁都選擇你下的那個瀏覽器,等網頁完全打開,你點擊收藏,或者點擊歷史,就大功告成
7. 安卓如何實現獲取網頁源代碼
public class GetHtmlCodeActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView = (TextView)this.findViewById(R.id.picture_textview);
try {
textView.setText(getPictureData("http://www..com"));
} catch (Exception e) {
Log.e("GetHtmlCodeActivity", e.toString());
Toast.makeText(GetHtmlCodeActivity.this, "網路連接失敗", 1).show();
}
}
//得到圖片的二進制數據
public String getPictureData(String path) throws Exception{
// 類 URL 代表一個統一資源定位符,它是指向互聯網「資源」的指針。
URL url = new URL("http://www..com/");
// 每個 HttpURLConnection 實例都可用於生成單個請求,
//但是其他實例可以透明地共享連接到 HTTP 伺服器的基礎網路
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//設置 URL 請求的方法
conn.setRequestMethod("GET");
//設置一個指定的超時值(以毫秒為單位),
//該值將在打開到此 URLConnection 引用的資源的通信鏈接時使用。
conn.setConnectTimeout(5 * 1000);
// conn.getInputStream()返回從此打開的連接讀取的輸入流
InputStream inStream = conn.getInputStream();// 通過輸入流獲取html數據
byte[] data = readInputStream(inStream);// 得到html的二進制數據
String html = new String(data);
return html;
}
//讀取輸入流中的數據,返回位元組數組byte[]
public byte[] readInputStream(InputStream inStream) throws Exception{
//此類實現了一個輸出流,其中的數據被寫入一個 byte 數組
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
// 位元組數組
byte[] buffer = new byte[1024];
int len = 0;
//從輸入流中讀取一定數量的位元組,並將其存儲在緩沖區數組buffer 中
while ((len = inStream.read(buffer)) != -1) {
// 將指定 byte 數組中從偏移量 off 開始的 len 個位元組寫入此輸出流
outStream.write(buffer, 0, len);
}
inStream.close();
//toByteArray()創建一個新分配的 byte 數組。
return outStream.toByteArray();
}
}
可以看一下這個自己想想哦
8. 安卓手機怎麼添加網頁的快捷方式到桌面
通過瀏覽器菜單,添加「桌面書簽」功能來實現。具體操作如下。
1)打開華為瀏覽器,登陸手機新浪網。
9. 如何進行手機APP的數據爬取
Python爬蟲手機的步驟:
1. 下載fiddler抓包工具
2. 設置fiddler
這里有兩點需要說明一下。
設置允許抓取HTTPS信息包
操作很簡單,打開下載好的fiddler,找到 Tools -> Options,然後再HTTPS的工具欄下勾選Decrpt HTTPS traffic,在新彈出的選項欄下勾選Ignore server certificate errors。
設置允許外部設備發送HTTP/HTTPS到fiddler
相同的,在Connections選項欄下勾選Allow remote computers to connect,並記住上面的埠號8888,後面會使用到。
好了,需要的fiddler設置就配置完成了。
3. 設置手機端
設置手機端之前,我們需要記住一點:電腦和手機需要在同一個網路下進行操作。
可以使用wifi或者手機熱點等來完成。
假如你已經讓電腦和手機處於同一個網路下了,這時候我們需要知道此網路的ip地址,可以在命令行輸入ipconfig簡單的獲得,如圖。
好了,下面我們開始手機端的設置。
手機APP的抓取操作對於Android和Apple系統都可用,博主使用的蘋果系統,在此以蘋果系統為例。
進入到手機wifi的設置界面,選擇當前連接網路的更多信息,在蘋果中是一個嘆號。然後在最下面你會看到HTTP代理的選項,點擊進入。
進入後,填寫上面記住的ip地址和埠號,確定保存。
4. 下載fiddler安全證書
在手機上打開瀏覽器輸入一個上面ip地址和埠號組成的url:http://192.168.43.38:8888,然後點擊FiddlerRoot certificate下載fiddler證書。
以上就簡單完成了所有的操作,最後我們測試一下是否好用。
5. 手機端測試
就以知乎APP為例,在手機上打開 知乎APP。下面是電腦上fiddler的抓包結果。
結果沒有問題,抓到信息包。然後就可以使用我們分析網頁的方法來進行後續的操作了。
10. 如何利用安卓手機進行app裡面的爬蟲採集
思路:
開發簡單爬取效率低的辦法找app自動化測試工具直接模擬人操作得到數據
如果對爬起取效率高或者對網路熟,可以用wireshark之類公具分析他的通信協議,是http還是自定義協議,然後偽造請求。