首页 > 后端开发 > 正文

java网络爬虫程序怎么运行

2024-04-08 00:34:25 | 我爱编程网

今天我爱编程网小编整理了java网络爬虫程序怎么运行相关信息,希望在这方面能够更好的大家。

本文目录一览:

java网络爬虫程序怎么运行

java网络爬虫程序怎么运行

用HTTPclient或者htmlunit工具包,他们都可以做爬虫获取网页的工具。比如htmlunit,楼主可以这样获取网页源码:

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

import com.gargoylesoftware.htmlunit.BrowserVersion;

import com.gargoylesoftware.htmlunit.html.HtmlDivision;

import com.gargoylesoftware.htmlunit.html.HtmlAnchor;

import com.gargoylesoftware.htmlunit.*;

import com.gargoylesoftware.htmlunit.WebClientOptions;

import com.gargoylesoftware.htmlunit.html.HtmlInput;

import com.gargoylesoftware.htmlunit.html.HtmlBody;

import java.util.List;我爱编程网

public class helloHtmlUnit{

public static void main(String[] args) throws Exception{

String str;

//创建一个webclient

WebClient webClient = new WebClient();

//htmlunit 对css和javascript的支持不好,所以请关闭之

webClient.getOptions().setJavaScriptEnabled(false);

webClient.getOptions().setCssEnabled(false);

//获取页面

HtmlPage page = webClient.getPage("");

//获取页面的TITLE

str = page.getTitleText();

System.out.println(str);

//获取页面的XML代码

str = page.asXml();

System.out.println(str);

//获取页面的文本

str = page.asText();

System.out.println(str);

//关闭webclient

webClient.closeAllWindows();

}

}

如果用HTTPclient,楼主可以百度它的教程,有本书叫做《自己动手写网络爬虫》,里面是以java语言为基础讲的,作为一个爬虫入门者可以去看看

java网络爬虫程序怎么运行

如何用java爬虫爬取招聘信息

1、思路:

明确需要爬取的信息

分析网页结构

分析爬取流程

优化

2、明确需要爬取的信息

职位名称

工资

职位描述

公司名称

公司主页

详情网页

分析网页结构

3、目标网站-拉勾网

网站使用json作为交互数据,分析json数据,需要的json关键数据

查看需要的信息所在的位置,使用Jsoup来解析网页

4、分析爬取流程

1.获取所有的positionId生成详情页,存放在一个存放网址列表中List joburls

2.获取每个详情页并解析为Job类,得到一个存放Job类的列表List jobList

3.把List jobList存进Excel表格中

Java操作Excel需要用到jxl

5、关键代码实现

public List getJobUrls(String gj,String city,String kd){

String pre_url="

";

String end_url=".html";

String url;

if (gj.equals("")){

url="

;city=

"+city+"&needAddtionalResult=false&first=false&pn="+pn+"&kd="+kd;

}else {

url="

positionAjax.json?gj="+gj+"&px=default&city="+city+"&needAddtionalResult=false&first=false&pn="+pn+"&kd="+kd;

}

String rs=getJson(url);

System.out.println(rs);

int total= JsonPath.read(rs,"$.content.positionResult.totalCount");//获取总数

int pagesize=total/15;

if (pagesize>=30){

pagesize=30;

}

System.out.println(total);

// System.out.println(rs);

List posid=JsonPath.read(rs,"$.content.positionResult.result[*].positionId");//获取网页id

for (int j=1;j<=pagesize;j++){ //获取所有的网页id

pn++; //更新页数

url="

positionAjax.json?gj="+gj+"&px=default&city="+city+"&needAddtionalResult=false&first=false&pn="+pn+"&kd="+kd;

String rs2=getJson(url);

List posid2=JsonPath.read(rs2,"$.content.positionResult.result[*].positionId");

posid.addAll(posid2); //添加解析的id到第一个list

}

List joburls=new ArrayList<>();

//生成网页列表

for (int id:posid){

String url3=pre_url+id+end_url;

joburls.add(url3);

}

return joburls;

}

public Job getJob(String url){ //获取工作信息

Job job=new Job();

Document document= null;

document = Jsoup.parse(getJson(url));

job.setJobname(document.select(".name").text());

job.setSalary(document.select(".salary").text());

String joball=HtmlTool.tag(document.select(".job_bt").select("div").html());//清除html标签

job.setJobdesc(joball);//职位描述包含要求

job.setCompany(document.select(".b2").attr("alt"));

Elements elements=document.select(".c_feature");

//System.out.println(document.select(".name").text());

job.setCompanysite(elements.select("a").attr("href")); //获取公司主页

job.setJobdsite(url);

return job;

}

void insertExcel(List jobList) throws IOException, BiffException, WriteException {

int row=1;

Workbook wb = Workbook.getWorkbook(new File(JobCondition.filename));

WritableWorkbook book = Workbook.createWorkbook(new File(JobCondition.filename), wb);

WritableSheet sheet=book.getSheet(0);

for (int i=0;i

sheet.addCell(new Label(0,row,jobList.get(i).getJobname()));

sheet.addCell(new Label(1,row,jobList.get(i).getSalary()));

sheet.addCell(new Label(2,row,jobList.get(i).getJobdesc()));

sheet.addCell(new Label(3,row,jobList.get(i).getCompany()));

sheet.addCell(new Label(4,row,jobList.get(i).getCompanysite()));

sheet.addCell(new Label(5,row,jobList.get(i).getJobdsite()));

row++;

}

book.write();

book.close();

}

java网络爬虫程序怎么运行

用java编写 网络爬虫(又称网络蜘蛛)程序,即一个网络搜索引擎。寻求解决办法

我爱编程网(https://www.52biancheng.com)小编还为大家带来用java编写 网络爬虫(又称网络蜘蛛)程序,即一个网络搜索引擎。寻求解决办法的相关内容。

方法很多,我说一种方法吧。

你可以用HttpClient来获取网页的源码,然后在源码中分别查找每一个链接。

下面这一段代码就可以获取网页的的源码 strURL为网页链接

HttpClient client = new HttpClient();

client.getHttpConnectionManager().getParams().setConnectionTimeout(500);

client.getHttpConnectionManager().getParams().setSoTimeout(500);

method = new PostMethod(strURL);

client.executeMethod(method);

webStatus += method.getStatusLine().getStatusCode()+",";

if(! "200".equals(method.getStatusLine().getStatusCode()+"")){

if(! "".equals(method.getStatusLine().getStatusCode()+""))

return "";

}

InputStream is = method.getResponseBodyAsStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is, currEncoding));

StringBuffer stringBuffer = new StringBuffer();

String str = "";

while ((str = br.readLine()) != null) {

stringBuffer.append(str);

}

content = stringBuffer.toString();

我不知道你还有什么具体的问题,有的继续追问。

以上就是我爱编程网小编给大家带来的java网络爬虫程序怎么运行全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java网络爬虫程序怎么运行”相关推荐