首页 > 后端开发 > 正文

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编写 网络爬虫(又称网络蜘蛛)程序,即一个网络搜索引擎。寻求解决办法

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

你可以用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网络爬虫程序怎么运行全部内容,希望对大家有所帮助!
与“java网络爬虫程序怎么运行”相关推荐
如何使用爬虫获取网页数据 python
如何使用爬虫获取网页数据 python

如何使用爬虫获取网页数据python八爪鱼采集器是一款功能全面、操作简单、适用范围广泛的互联网数据采集器,但是它是一款可视化的工具,不需要编程和代码知识。如果您想使用Python编写爬虫来获取网页数据,可以使用Python的第三方库,如BeautifulSoup、Scrapy等。以下是使用Python编写爬虫获取网页数据的一般步骤:1.安装Python和所需的第三方库。可以使用pip命令来安

2023-12-24 04:18:13
python爬虫要学什么
python爬虫要学什么

python爬虫要学什么python爬虫要学什么?让我们一起了解一下吧!1、学习计算机网络协议基础,了解一个完整的网络请求过程,大致了解网络协议(http协议,tcp-ip协议),了解socket编程,为后期学习爬虫打下扎实的基础。2、学习前端基础,你需要掌握html、css和JavaScript之间的关系,浏览器的加载过程,ajax、json和xml,GET、POST方法。3、

2023-12-22 16:09:48
Python爬虫如何写?
Python爬虫如何写?

Python爬虫如何写?Python的爬虫库其实很多,像常见的urllib,requests,bs4,lxml等,初始入门爬虫的话,可以学习一下requests和bs4(BeautifulSoup)这2个库,比较简单,也易学习,requests用于请求页面,BeautifulSoup用于解析页面,下面我以这2个库为基础,简单介绍一下Python如何爬取网页静态数据和网页动态数据,实验环境w

2024-02-01 02:37:57
网络安全学什么编程语言
网络安全学什么编程语言

网络安全学什么编程语言网络安全学会学习C和C++、Python,编程语言。1、C和C++如果是在网络安全领域,C和C++是相对重要的最基础的编程语言,这些语言提供了对底层IT基础设施(如RAM和系统进程)的访问,如果保护不好,黑客可以很容易地利用这些基础设施。C编程语言是大多数操作系统的主干。从本质上讲,C++通常被认为是C的大哥,它是由crack、meth和ster

2024-02-06 21:49:51
python神经网络编程有什么用?
python神经网络编程有什么用?

python神经网络编程有什么用?预测器神经网络和计算机一样,对于输入和输出都做了一些处理,当我们不知道这些是什么具体处理的时候,可以使用模型来估计,模型中最重要的就是其中的参数。对于以前所学的知识都是求出特定的参数,而在这里是使用误差值的大小去多次指导参数的调整,这就是迭代。误差值=真实值-计算值分类器预测器是转换输入和输出之间的关系,分类器是将两类事物划分开,只是预测

2024-02-19 01:27:03
Java程序在eclipse中怎么运行?
Java程序在eclipse中怎么运行?

Java程序在eclipse中怎么运行?中文版:1、打开“运行”菜单,点击“运行(N)...”按钮,进入运行配置界面。2、在左侧选择要运行的程序,然后点击右侧“(x)=自变量”标签,在下面的“程序自变量(A):”文本框中输入程序运行需要的参数。3、点击下面的“运行(R)”按钮运行程序。英文版:1、打开“Run”菜单,点击“Run...”按钮,进入运行配置界面。

2024-04-02 06:43:10
java 怎么让程序一直运行
java 怎么让程序一直运行

java怎么让程序一直运行只有死循环和线程两种方法,不太明白楼主是什么意思。如果是web工程的话,可以发布到服务器上(如tomcat)等,一直让服务器处于开启状态就行了。如果是类似做QQ一样的即时聊天工具的话就用线程,让工具类处在线程内,再用类的构造函数开启线程,.start()就是这样了。JAVA程序执行完一个功能后如何继续执行其他功能加个for循环,加个判断退出的条件。。。

2024-03-27 00:12:03
ubuntu怎么查看java运行的程序
ubuntu怎么查看java运行的程序

查看java进程java进程linuxlinux命令里的jps是什么意思?jps(JavaVirtualMachineProcessStatusTool)是JDK1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。Java工程师需要掌握Linux的哪些方面?基本操作,会部署程序,查看进

2024-03-19 14:08:11