重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你是要抓网页源代码,还是浏览器渲染后的body;
创新互联建站专注于良庆网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供良庆营销型网站建设,良庆网站制作、良庆网页设计、良庆网站官网定制、微信小程序开发服务,打造良庆网络公司原创品牌,更为您提供良庆网站排名全网营销落地服务。
如果是网页源代码,很简单,用java自带的http就好了;
如果是渲染后的body(包括js和ajax执行后的页面),需要调用无界面浏览器,然后通过api获得返回的数据
你可以利用jsoup来抓取HTML页面的信息
Document doc = Jsoup.parse(input,"UTF-8","");
Elements links = doc.select("a[href]"); // 具有 href 属性的链接
Elements pngs = doc.select("img[src$=.png]");// 所有引用 png 图片的元素
Element masthead = doc.select("div.masthead").first();
// 找出定义了 class=masthead 的元素
Elements resultLinks = doc.select("h3.r a"); // direct a after h3
通过Java代码实现对网页数据进行指定抓取方法思路如下:
在工程中导入Jsoup.jar包
获取网址url指定HTML或者文档指定的body
获取网页中超链接的标题和链接
获取指定博客文章的内容
获取网页中超链接的标题和链接的结果
根据java网络编程相关的内容,使用jdk提供的相关类可以得到url对应网页的html页面代码。
针对得到的html代码,通过使用正则表达式即可得到我们想要的内容。
比如,我们如果想得到一个网页上所有包括“java”关键字的文本内容,就可以逐行对网页代码进行正则表达式的匹配。最后达到去除html标签和不相关的内容,只得到包括“java”这个关键字的内容的效果。
从网页上爬取图片的流程和爬取内容的流程基本相同,但是爬取图片的步骤会多一步。
需要先用img标签的正则表达式匹配获取到img标签,再用src属性的正则表达式获取这个img标签中的src属性的图片url,然后再通过缓冲输入流对象读取到这个图片url的图片信息,配合文件输出流将读到的图片信息写入到本地即可。