htmlparser 基础 网页拔取
来源:互联网 发布:java简单超市管理系统 编辑:程序博客网 时间:2024/04/30 15:31
拔取网页 是http://mm.10086.cn/android/info/300008730468.html?from=www&fw=227062网页
打开网页 网页的bug模式(F12)
找出你想要爬取的数据
代码
package com.baidu;
import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.filters.AndFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.HasChildFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import com.baidu.apply.bean.Apply;
import com.baidu.util.WebUtils;
import com.baidu.util.httpDownload;
public class HtmlParse {
public static void main(String[] args) throws ParserException {
Parser parse=new Parser("http://mm.10086.cn/android/info/300008730468.html?from=www&fw=227062");
parse.setEncoding("UTF-8");
//获取应用的名称
Apply apply=new Apply();
String appName="";
TagNameFilter nameFilter = new TagNameFilter("div");
AndFilter andFilter = new AndFilter(nameFilter, new HasAttributeFilter("class","mj_big_title font-f-yh"));
NodeList list= parse.parse(andFilter);
Tag tag=(Tag) list.elementAt(0);
System.out.println(tag.toPlainTextString());
//清零
parse.reset();
//获取应用
andFilter = new AndFilter(nameFilter, new HasAttributeFilter("class","mj_info font-f-yh"));
list= parse.parse(andFilter);
tag=(Tag) list.elementAt(0);
Node children=tag.getFirstChild();
list = children.getChildren();
for (int i = 0; i < list.size(); i++) {
tag = (Tag) list.elementAt(i);
if(i==0){
apply.setDownloadsize(tag.toPlainTextString());
System.out.println(tag.toPlainTextString());
}
System.out.println(tag.toPlainTextString());
String[] split = tag.toPlainTextString().split(":");
for (int j = 0; j < split.length; j++) {
if(i==1&&j==1){
apply.setPrice(split[j]);
}else if(i==2&&j==1){
apply.setVersion(split[j]);
}else if(i==3&&j==1){
apply.setFilesize(split[j]);
}
else if(i==4&&j==1){
apply.setDeveloper(split[j]);
}else if(i==5&&j==1){
apply.setApptype(split[j]);
}else if(i==6&&j==1){
apply.setUpdatetime(split[j]);
}else if(i==7&&j==1){
apply.setPlatform(split[j]);
}
}
}
//清零
parse.reset();
/**
*下载图片
*/
andFilter = new AndFilter(nameFilter,new HasAttributeFilter("class","mj_lunbo"));
list = parse.parse(andFilter);
tag= (Tag) list.elementAt(0);
// parse.reset();
list = tag.getChildren();
HasChildFilter hasChildFilter = new HasChildFilter(new TagNameFilter("img"));
andFilter=new AndFilter(nameFilter,hasChildFilter);
NodeList extractAll = list.extractAllNodesThatMatch(andFilter);
for (int i = 0; i < extractAll.size(); i++) {
tag=(Tag) extractAll.elementAt(i);
System.out.println(tag.getAttribute("id"));
Tag tag1 = (Tag) tag.getFirstChild();
String pic = tag1.getAttribute("src");
httpDownload.httpDownload(pic, apply.getAppname()+WebUtils.getRandomId()+".jpg");
}
parse.reset();
//
// /**
// * 下载apk
// */
//
// nameFilter = new TagNameFilter("div");
//
// andFilter =new AndFilter(nameFilter, new HasAttributeFilter("class", "mj_cont_left_t"));
//
// list = parse.parse(andFilter);
//
// tag =(Tag) list.elementAt(0);
//
// NodeList children1 = tag.getChildren();
//
// tag= (Tag)children1.elementAt(2);
//
// String href = tag.getAttribute("href");
//
// httpDownload.httpDownload(href, apply.getAppname()+WebUtils.getRandomId()+".apk");
//
//
// parse.reset();
/**
* 下载二维码
*/
nameFilter=new TagNameFilter("div");
andFilter =new AndFilter(nameFilter,new HasAttributeFilter("class","mj_ewlist"));
list=parse.parse(andFilter);
tag = (Tag) list.elementAt(0);
list = tag.getChildren();
tag = (Tag) list.elementAt(1);
list = tag.getChildren();
for (int i = 0; i < list.size(); i++) {
tag=(Tag) list.elementAt(i);
list= tag.getChildren();
tag = (Tag) list.elementAt(0);
String src = tag.getAttribute("src");
httpDownload.httpDownload(src, apply.getAppname()+WebUtils.getRandomId()+".jpg");
}
//添加到数据库
String appid = WebUtils.getRandomId();
String sql="insert into t_app (id,appname,version,description,filesize,updatetime,developer,apptype,price,downloadsize,platform,status) "
+ "values('"+appid+"','"+apply.getAppname()+"','"+apply.getVersion()+"','"+apply.getDescription()+"',"
+ "'"+apply.getFilesize()+"','"+apply.getUpdatetime()+"','"+apply.getDeveloper()+"','"+apply.getApptype()+"',"
+ "'"+apply.getPrice()+"','"+apply.getDownloadsize()+"','"+apply.getPlatform()+"','0')";
System.out.println(sql);
}
}
- htmlparser 基础 网页拔取
- Scrapy 批量获取URL以及进一步拔取网页链接数据
- 解析网页工具HTMLParser
- 学习HTMLParser解析网页
- HtmlParser技术:网页抓取
- 网页爬虫 htmlparser
- Python使用HTMLParser.HTMLParser处理网页
- Python基础 HTMLParser
- 利用htmlparser抓取网页内容
- htmlParser解析网页链接问题
- htmlparser lexer解析网页源代码
- 获取网页标题(htmlparser)
- htmlparser lexer解析网页源代码
- 使用htmlparser抓取网页链接
- 网页信息抓取(Java htmlparser)
- htmlparser解析网页基本代码
- htmlparser解析网页内容代码
- Java抓取网页 解析网页HtmlParser
- 数据结构课程设计——通讯录制作
- MFC 使用GDI+ 绘制Png、Jpg等类型图片
- Android中的事件机制
- 智能手机音频系统
- Singleton模式——对象创建型模式
- htmlparser 基础 网页拔取
- 关于iOS app之间相互调用
- 关于 Web Service 学习
- 基于视频的车辆识别技术
- 打log
- 卢布危机对中国四大启示
- Swift之状态栏操作
- APPCON 电池供电433M 470M无线模块, 电池工作超10年
- Bootstrap 自助法