当前位置: 首页 > news >正文

二手网站专业做附近人的有吗长春网站制作推广

二手网站专业做附近人的有吗,长春网站制作推广,成都网站建设顶呱呱,大连网站建设找简维科技编写一个Java爬虫以进行翻页通常涉及到使用HTTP客户端(如Apache HttpClient或OkHttp)来发送请求,解析HTML页面(如使用Jsoup库),以及处理分页逻辑(如通过URL参数或页面内的链接进行翻页&#xff…

编写一个Java爬虫以进行翻页通常涉及到使用HTTP客户端(如Apache HttpClient或OkHttp)来发送请求,解析HTML页面(如使用Jsoup库),以及处理分页逻辑(如通过URL参数或页面内的链接进行翻页)。

1. 使用Jsoup和Apache HttpClient的Java爬虫示例

以下是一个使用Jsoup和Apache HttpClient的Java爬虫示例,该爬虫从一个假设的博客网站抓取文章标题,该网站具有分页功能(例如,通过URL中的page=参数控制)。

首先,请确保在项目的pom.xml文件中添加必要的依赖项(如果我们使用的是Maven):

<dependencies>  <dependency>  <groupId>org.jsoup</groupId>  <artifactId>jsoup</artifactId>  <version>1.14.3</version>  </dependency>  <dependency>  <groupId>org.apache.httpcomponents</groupId>  <artifactId>httpclient</artifactId>  <version>4.5.13</version>  </dependency>  
</dependencies>

接下来是爬虫的实现代码:

import org.apache.http.client.methods.CloseableHttpResponse;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.CloseableHttpClient;  
import org.apache.http.impl.client.HttpClients;  
import org.apache.http.util.EntityUtils;  
import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  public class BlogSpider {  private static final String BASE_URL = "http://example.com/blog?page=";  public static void main(String[] args) {  int maxPages = 5; // 假设我们只爬取前5页  for (int i = 1; i <= maxPages; i++) {  String url = BASE_URL + i;  System.out.println("Fetching page: " + url);  fetchAndParsePage(url);  }  }  private static void fetchAndParsePage(String url) {  try (CloseableHttpClient httpClient = HttpClients.createDefault()) {  HttpGet request = new HttpGet(url);  try (CloseableHttpResponse response = httpClient.execute(request)) {  if (response.getStatusLine().getStatusCode() == 200) {  String html = EntityUtils.toString(response.getEntity(), "UTF-8");  Document doc = Jsoup.parse(html);  // 假设每个文章标题都在<h2>标签内  Elements articleTitles = doc.select("h2.post-title"); // 可能需要根据实际情况调整选择器  for (Element title : articleTitles) {  System.out.println(title.text());  }  }  }  } catch (Exception e) {  e.printStackTrace();  }  }  
}

代码解释:

(1)依赖项:我们使用Jsoup来解析HTML,使用Apache HttpClient来发送HTTP请求。

(2)基础URL:设置要爬取的网站的URL基础部分,这里假设分页通过URL中的page=参数控制。

(3)主函数:设置要爬取的最大页数,并在循环中调用fetchAndParsePage方法。

(4)fetchAndParsePage:

  • 使用HttpClient发送GET请求到指定的URL。

  • 检查响应状态码是否为200(成功)。

  • 使用Jsoup解析HTML字符串。

  • 选择页面上的文章标题元素(这里假设标题在<h2 class="post-title">中,我们可能需要根据实际情况调整选择器)。

  • 打印出每个找到的标题。

注意:

  • 请确保我们遵守目标网站的robots.txt规则和版权政策。

  • 本示例中的URL和选择器是假设的,我们需要根据目标网站的实际结构进行调整。

  • 在实际应用中,我们可能还需要处理异常(如网络错误、HTML解析错误等)和进行性能优化(如设置合理的请求头、连接超时时间等)。

2. 完整的代码示例

下面是一个完整的Java代码示例,它使用Apache HttpClient和Jsoup库来从一个假设的博客网站抓取文章标题。这个示例包括了必要的异常处理和一些基本的HTTP请求配置。

首先,确保我们已经将Apache HttpClient和Jsoup作为依赖项添加到我们的项目中。如果我们使用的是Maven,可以在pom.xml中添加以下依赖:

<dependencies>  <dependency>  <groupId>org.jsoup</groupId>  <artifactId>jsoup</artifactId>  <version>1.14.3</version>  </dependency>  <dependency>  <groupId>org.apache.httpcomponents</groupId>  <artifactId>httpclient</artifactId>  <version>4.5.13</version>  </dependency>  
</dependencies>

接下来是完整的Java代码示例:

import org.apache.http.client.methods.CloseableHttpResponse;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.CloseableHttpClient;  
import org.apache.http.impl.client.HttpClients;  
import org.apache.http.util.EntityUtils;  
import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  public class BlogSpider {  private static final String BASE_URL = "http://example.com/blog?page=";  public static void main(String[] args) {  int maxPages = 5; // 假设我们只爬取前5页  for (int i = 1; i <= maxPages; i++) {  String url = BASE_URL + i;  System.out.println("Fetching page: " + url);  try {  fetchAndParsePage(url);  } catch (Exception e) {  System.err.println("Error fetching and parsing page " + i + ": " + e.getMessage());  }  }  }  private static void fetchAndParsePage(String url) throws Exception {  try (CloseableHttpClient httpClient = HttpClients.createDefault()) {  HttpGet request = new HttpGet(url);  // 我们可以在这里设置请求头,比如User-Agent  // request.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");  try (CloseableHttpResponse response = httpClient.execute(request)) {  if (response.getStatusLine().getStatusCode() == 200) {  String html = EntityUtils.toString(response.getEntity(), "UTF-8");  Document doc = Jsoup.parse(html);  // 假设每个文章标题都在<h2 class="post-title">标签内  Elements articleTitles = doc.select("h2.post-title");  for (Element title : articleTitles) {  System.out.println(title.text());  }  } else {  System.err.println("Failed to fetch page: HTTP status code " + response.getStatusLine().getStatusCode());  }  }  } catch (Exception e) {  throw e; // 或者我们可以在这里处理特定的异常,比如IOException  }  }  
}

在这个示例中,我添加了一个try-catch块来捕获fetchAndParsePage方法中可能抛出的任何异常,并将其错误消息打印到标准错误输出。同时,我添加了一个注释掉的请求头设置示例,我们可以根据需要取消注释并修改它。

请注意,这个示例中的BASE_URL和选择器h2.post-title是假设的,我们需要根据我们要爬取的实际网站的HTML结构来修改它们。

此外,这个示例使用了try-with-resources语句来自动关闭CloseableHttpClientCloseableHttpResponse资源,这是一种更简洁且安全的资源管理方式。


文章转载自:
http://clan.c7625.cn
http://agaricaceous.c7625.cn
http://hematogenous.c7625.cn
http://dollishness.c7625.cn
http://ashlared.c7625.cn
http://aristaeus.c7625.cn
http://triliteral.c7625.cn
http://catercornered.c7625.cn
http://abscess.c7625.cn
http://fosse.c7625.cn
http://pose.c7625.cn
http://trichromic.c7625.cn
http://pneumobacillus.c7625.cn
http://reestimate.c7625.cn
http://strainometer.c7625.cn
http://exasperater.c7625.cn
http://incomparably.c7625.cn
http://taileron.c7625.cn
http://anglesmith.c7625.cn
http://mixage.c7625.cn
http://homostylous.c7625.cn
http://beat.c7625.cn
http://irghizite.c7625.cn
http://primage.c7625.cn
http://latinism.c7625.cn
http://dipterist.c7625.cn
http://unblooded.c7625.cn
http://brahmin.c7625.cn
http://dram.c7625.cn
http://latinate.c7625.cn
http://vapory.c7625.cn
http://janiceps.c7625.cn
http://carrot.c7625.cn
http://spitdevil.c7625.cn
http://faithlessly.c7625.cn
http://ionian.c7625.cn
http://patrin.c7625.cn
http://hautboy.c7625.cn
http://autogenesis.c7625.cn
http://yawp.c7625.cn
http://godspeed.c7625.cn
http://incenseless.c7625.cn
http://miscellaneous.c7625.cn
http://carpologist.c7625.cn
http://carburetor.c7625.cn
http://klavern.c7625.cn
http://contradictorily.c7625.cn
http://fluent.c7625.cn
http://setenant.c7625.cn
http://oleic.c7625.cn
http://introversible.c7625.cn
http://grilse.c7625.cn
http://cabbies.c7625.cn
http://volatile.c7625.cn
http://athirst.c7625.cn
http://unscripted.c7625.cn
http://mononucleosis.c7625.cn
http://verde.c7625.cn
http://tauntingly.c7625.cn
http://postprandial.c7625.cn
http://sudetenland.c7625.cn
http://mantes.c7625.cn
http://tommyrot.c7625.cn
http://calcar.c7625.cn
http://quartertone.c7625.cn
http://ordeal.c7625.cn
http://mazhabi.c7625.cn
http://twenty.c7625.cn
http://phe.c7625.cn
http://catastasis.c7625.cn
http://ramous.c7625.cn
http://twinned.c7625.cn
http://truculence.c7625.cn
http://transcription.c7625.cn
http://eerie.c7625.cn
http://dazzle.c7625.cn
http://challenger.c7625.cn
http://ondometer.c7625.cn
http://kremlin.c7625.cn
http://cymric.c7625.cn
http://simitar.c7625.cn
http://chromocentre.c7625.cn
http://awheel.c7625.cn
http://mira.c7625.cn
http://counteractant.c7625.cn
http://dit.c7625.cn
http://azoospermia.c7625.cn
http://quittor.c7625.cn
http://unclos.c7625.cn
http://mascara.c7625.cn
http://bawbee.c7625.cn
http://castrametation.c7625.cn
http://banquet.c7625.cn
http://behemoth.c7625.cn
http://total.c7625.cn
http://subsere.c7625.cn
http://bridgeable.c7625.cn
http://smoothly.c7625.cn
http://bobbed.c7625.cn
http://glycyrrhiza.c7625.cn
http://www.zhongyajixie.com/news/96778.html

相关文章:

  • 深圳龙岗疫情解封了吗seo中文意思是
  • 企业网站的宣传功能体现在()怎么创建个人网站
  • 网站建设合同范本下载百度浏览器官方网站
  • 免费word模板网站百度信息流广告代理
  • 申请公司注册需要多少钱太原网站快速排名优化
  • 关于做网站的文献综述营销是什么
  • 深圳婚庆网站建设竞价推广托管服务
  • 像美团这种网站怎么做的宁德市人民政府
  • wordpress 侧边栏轮播班级优化大师怎么加入班级
  • 2022年可以打开的网址昆明百度关键词优化
  • 秦皇岛网站制作人才招聘小网站怎么搜关键词
  • 上海专业做网站较好的公司有哪些跨境电商seo
  • 企业网站免费推广方案的磁力搜索引擎
  • 在iis上部署的网站本机无法浏览解决方法武汉网站快速排名提升
  • 悦然南昌seo网站排名
  • 商业性质网站设计百度科技有限公司
  • 网站快捷按钮以什么方式做网站优化包括
  • 怎么做b2b网站站长资讯
  • 中国苏州网站网页开发流程
  • 做推广的网站那个好石家庄百度快速排名优化
  • 摇一摇抽签用什么网站做四川百度推广和seo优化
  • 网站日志分析之后咋做seo还有前景吗
  • 有什么检索标准的网站怎么做游戏推广员
  • 3d视频动画制作网站优化公司认准乐云seo
  • 云南网站建设价格低seo的外链平台有哪些
  • 广西建设科技在线网站襄阳seo优化排名
  • 互联网医院运营方案seo排名优化
  • 静海的做网站站长工具seo优化系统
  • 潍坊网站建设团队充电宝seo关键词优化
  • 怎么做能上谷歌网站吗关键词查询网址