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

做预约的网站东莞市人才市场

做预约的网站,东莞市人才市场,昆明网站建设哪家公司好,wordpress域名修改后编写一个Java爬虫以进行翻页通常涉及到使用HTTP客户端#xff08;如Apache HttpClient或OkHttp#xff09;来发送请求#xff0c;解析HTML页面#xff08;如使用Jsoup库#xff09;#xff0c;以及处理分页逻辑#xff08;如通过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  groupIdorg.jsoup/groupId  artifactIdjsoup/artifactId  version1.14.3/version  /dependency  dependency  groupIdorg.apache.httpcomponents/groupId  artifactIdhttpclient/artifactId  version4.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方法。 4fetchAndParsePage 使用HttpClient发送GET请求到指定的URL。 检查响应状态码是否为200成功。 使用Jsoup解析HTML字符串。 选择页面上的文章标题元素这里假设标题在h2 classpost-title中我们可能需要根据实际情况调整选择器。 打印出每个找到的标题。 注意 请确保我们遵守目标网站的robots.txt规则和版权政策。 本示例中的URL和选择器是假设的我们需要根据目标网站的实际结构进行调整。 在实际应用中我们可能还需要处理异常如网络错误、HTML解析错误等和进行性能优化如设置合理的请求头、连接超时时间等。 2. 完整的代码示例 下面是一个完整的Java代码示例它使用Apache HttpClient和Jsoup库来从一个假设的博客网站抓取文章标题。这个示例包括了必要的异常处理和一些基本的HTTP请求配置。 首先确保我们已经将Apache HttpClient和Jsoup作为依赖项添加到我们的项目中。如果我们使用的是Maven可以在pom.xml中添加以下依赖 dependencies  dependency  groupIdorg.jsoup/groupId  artifactIdjsoup/artifactId  version1.14.3/version  /dependency  dependency  groupIdorg.apache.httpcomponents/groupId  artifactIdhttpclient/artifactId  version4.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 classpost-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语句来自动关闭CloseableHttpClient和CloseableHttpResponse资源这是一种更简洁且安全的资源管理方式。
http://www.dnsts.com.cn/news/200452.html

相关文章:

  • 鹿泉微信网站建设苏州中车建设工程有限公司网站
  • jsp网站开发期末大作业长沙百姓网招聘信息
  • php网站开发百度百科宝塔wordpress无法打开
  • 做网站版面深圳网站建设推荐
  • 张家口建设厅网站企业网站建设与营运计划书
  • 网站导航网有哪些好的响应式网站
  • 做logo的比赛网站网络设备具体有哪些
  • 外贸soho建网站做音乐网站的目的
  • 网站建设 软件开发隐秘入口 黑料正能量
  • 商务贸易网站建设为什么投资公司不能注册了
  • 医美网站建设用qq邮箱做网站
  • 网站建设资料准备长宁怎么做网站优化好
  • 廊坊哪里能够做网站python做直播网站
  • 太原网站建设晋icp备东莞专业网站制作设计
  • 河北pc端网站建设php网站模板
  • 在家做的打字兼职的网站网页设计尺寸高度
  • 网站里 动效是用什么做的小程序开发定制平台
  • wordpress建站Pdf工业互联网平台分类
  • 手机网站设计模板seo高端培训
  • 制作一个.net网站需要云商城搭建
  • 上海装饰公司排名百强网站做sem优化
  • 贵阳网站建设管理怎么制定wordpress文章的页面
  • 建站之星用做什么网站微信二次开发
  • 群晖搭建企业网站怎么在自己电脑上做网站
  • 网站标题一样深圳高端网站定制设计
  • 网页制作自学杭州网站优化培训
  • 茂名住房和城乡建设厅网站北京专业英文网站建设
  • 广东专业高端网站建设移动端网站模板怎么做的
  • 创建网站大约多少钱2018天河区进一步
  • 最优的网站建设推广wordpress添加自定义字段面板