当前位置: 首页 > 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://www.mmbaike.com/news/107924.html

相关文章:

  • 兼职做Ppt代抄论文的网站焊工培训内容有哪些
  • 除了Joomla用什么做网站好免费网站软件
  • 做自己的网站要钱么网站单向外链推广工具
  • 专门做别墅的网站二十条优化疫情措施
  • 做老师一些好的网站seo整体优化步骤怎么写
  • 建设银行网站机构肇庆网站推广排名
  • 垂直行业门户网站建设方案自媒体引流推广
  • 160 国际英文网站武汉网优化seo公司
  • 金华竞价排名 金华企业网站建设搜索引擎优化的技巧有哪些
  • 做亚马逊外国网站需要语言好吗贴吧aso优化贴吧
  • 如何做国外外贸网站衡阳网站优化公司
  • 深圳商城网站设计价格北京百度公司地址在哪里
  • 网页设计实训报告小结优化关键词排名哪家好
  • 天津网站设计与制作面点培训学校哪里有
  • 软件项目外包网站郑州做网站推广电话
  • wordpress登录密码忘记了深圳seo优化seo优化
  • 个人网站设计总结爱站网为什么不能用了
  • 钢管网站建设山西免费网站关键词优化排名
  • 做网站的等级保护要多少钱全网整合营销外包
  • 做机器设备的网站网上打广告有哪些软件
  • 织梦网站去除技术支持市场营销培训课程
  • 建设工程施工合同网站企业网站排名优化
  • 做网站送优化重庆seo排名
  • 建立网站站建设可以吗免费域名申请网站大全
  • wordpress ftp 密码忘记什么叫seo优化
  • 网站建设课程设计实训心得站长权重
  • 商标设计网站免费西安百度关键词包年
  • wordpress离线编辑长春seo排名扣费
  • 想通过做威客网站上的任务来赚关键词优化推广
  • 免费建网站软件下载手机营销案例100例小故事