java爬虫--jsoup简单的表单抓取案例

分析需求:
某农产品网站的农产品价格抓取


网站链接:点击打开链接


页面展示如上:



标签展示如上:


分析发现每日价格行情包括了蔬菜,水果,肉等所有的信息,所以直接抓每日行情的内容就可以实现抓取全部数据。

软件环境:eclipse,Jsoup包

下载地址:点击打开链接

 密码:bmrr


抓取表单比较简单,直接用select选择标签即可。

实现

完整代码如下:

package com.jsoup;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Shichang {

	public static void main(String[] args) throws IOException {
		String url = "";
		Document doc=null;
		BufferedWriter bw = null;
		
		//文件输出路径
		String path="f:\\cai.txt";
		
		for (int i = 1; i <= 10; i++) {
			url = "http://www.xinfadi.com.cn/marketanalysis/0/list/" + i + ".shtml";
			
			//测试用的url
			// url = "http://www.xinfadi.com.cn/marketanalysis/0/list/1.shtml";
			
			//模拟浏览器
			doc = Jsoup.connect(url)
					.userAgent(
							"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31")
					.timeout(6000 * 1000).get();
			//找到名为hq_table的table
			Elements el = doc.select("table.hq_table");
			// System.out.println(el);
			
			//遍历hq_table中的tr
			for (Element el2 : el) {
				
				Elements el3 = el2.select("tr.tr_color");
				
				//遍历tr中的td
			for (Element el4 : el3) {
					Elements el5 = el4.select("td");
					
					String rs = el5.text().toString().replace(" ", "\t");
					//输出到控制台
					System.out.println(rs);
					
					//输出到本地文件
					bw = new BufferedWriter(new FileWriter(path,true));
					bw.write(rs);
					bw.newLine();
					bw.flush();
					bw.close();
				}

			}
		}
	}
}
参考:http://www.open-open.com/jsoup/

 http://blog.csdn.net/getchance/article/details/40423103


posted @ 2017-09-25 09:17  Beeman_xia  阅读(509)  评论(0编辑  收藏  举报