「java爬取贴吧」java爬取网站图片

博主:adminadmin 2023-03-18 09:52:14 593

本篇文章给大家谈谈java爬取贴吧,以及java爬取网站图片对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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

1、思路:

明确需要爬取的信息

分析网页结构

分析爬取流程

优化

2、明确需要爬取的信息

职位名称

工资

职位描述

公司名称

公司主页

详情网页

分析网页结构

3、目标网站-拉勾网

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

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

4、分析爬取流程

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

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

3.把ListJob jobList存进Excel表格中

Java操作Excel需要用到jxl

5、关键代码实现

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

String pre_url="";

String end_url=".html";

String url;

if (gj.equals("")){

url=";city="+city+"needAddtionalResult=falsefirst=falsepn="+pn+"kd="+kd;

}else {

url=""+gj+"px=defaultcity="+city+"needAddtionalResult=falsefirst=falsepn="+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);

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

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

pn++; //更新页数

url=""+gj+"px=defaultcity="+city+"needAddtionalResult=falsefirst=falsepn="+pn+"kd="+kd;

String rs2=getJson(url);

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

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

}

ListString 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(ListJob 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;ijobList.size();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网络编程相关的内容,使用jdk提供的相关类可以得到url对应网页的html页面代码。

针对得到的html代码,通过使用正则表达式即可得到我们想要的内容。

比如,我们如果想得到一个网页上所有包括“java”关键字的文本内容,就可以逐行对网页代码进行正则表达式的匹配。最后达到去除html标签和不相关的内容,只得到包括“java”这个关键字的内容的效果。

从网页上爬取图片的流程和爬取内容的流程基本相同,但是爬取图片的步骤会多一步。

需要先用img标签的正则表达式匹配获取到img标签,再用src属性的正则表达式获取这个img标签中的src属性的图片url,然后再通过缓冲输入流对象读取到这个图片url的图片信息,配合文件输出流将读到的图片信息写入到本地即可。

急求一个java程序模板:我们有java数据结构课程设计:用java写一个爬虫,爬取两个网页的内容。

//这是一位老师讲课时的爬邮箱代码,你可以参考一下

package cn.itcast.regex.test;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/*

 * 网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据。 

 * 

 * 爬取邮箱地址。 

 * 

 */

public class RegexTest2 {

/**

 * @param args

 * @throws IOException 

 */

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

ListString list = getMailsByWeb();

for(String mail : list){

System.out.println(mail);

}

}

public static ListString getMailsByWeb() throws IOException {

//1,读取源文件。

// BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));

URL url = new URL("");

BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()));

//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.

String mail_regex = "\\w+@\\w+(\\.\\w+)+";

ListString list = new ArrayListString();

Pattern p = Pattern.compile(mail_regex);

String line = null;

while((line=bufIn.readLine())!=null){

Matcher m = p.matcher(line);

while(m.find()){

//3,将符合规则的数据存储到集合中。

list.add(m.group());

}

}

return list;

}

public static ListString  getMails() throws IOException{

//1,读取源文件。

BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));

//2,对读取的数据进行规则的匹配。从中获取符合规则的数据.

String mail_regex = "\\w+@\\w+(\\.\\w+)+";

ListString list = new ArrayListString();

Pattern p = Pattern.compile(mail_regex);

String line = null;

while((line=bufr.readLine())!=null){

Matcher m = p.matcher(line);

while(m.find()){

//3,将符合规则的数据存储到集合中。

list.add(m.group());

}

}

return list;

}

}

java 如何实现网络爬虫,爬取新闻评论,新闻内容可以获取,但是评论无法在网页源码显示。

如果评论是通过AJAX显示的,那么抓取有一定难度。

你的爬虫需要能够解释JS,并解惑JS的内容。

但如果你只针对少数的网站进行抓取,则可以针对这些网站开发专用的蜘蛛。人工分析其JS,从中找到其获取评论的AJAX接口,然后抓之。这样简单。

还可以用爬虫操作一个浏览器,通过浏览器的接口获取其运行完成后的显示的内容

如何利用 java 多线程 爬取大量网页

要自己写算法吗?

不用的话,给你个软件:webzip,这个可以满足。

自己写的话就是一个总控来控制哪些需要下载,开一些线程去下载用HttpClient下载网页,用JSoup分析网页

可以看看这里:

Java如何进行多层爬取?已爬取网站主页,想爬取其他内页,这应该怎么办?给点思路、意见或者是资源吧!

正则提取首页里面包含的链接地址,然后判断是网内还是网外,然后继续爬

java爬取贴吧的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java爬取网站图片、java爬取贴吧的信息别忘了在本站进行查找喔。