安卓手机如何加网页爬取
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还是自定义协议,然后伪造请求。