1. 程式人生 > >Java實現簡單爬蟲爬取天氣預報

Java實現簡單爬蟲爬取天氣預報

爬蟲爬取網頁的主要流程是:

1.向目標網頁發起請求;

2.對於獲取到的html檔案進行解析;

3.對解析後的資料進行儲存。

本次主要是爬取全國城市未來7天的天氣預報,爬取物件為中國天氣網,爬取的資料存入文字中。

對於html檔案的解析採用Jsoup結合正則表示式。

地區程式碼參考:https://wenku.baidu.com/view/49166e7265ce050877321331.html

實現程式碼:

public class Spiderweather {
	public static void main(String[] args) {
		List<String> list = null;
		BufferedReader bufr = null;
		BufferedWriter bufw = null;
		try {
			bufr = new BufferedReader(new FileReader(new File("D:\\bianma.txt")));
			list = new ArrayList<String>();
			String line = "";
			Pattern p = Pattern.compile("\\d{2,}");
			while ((line = bufr.readLine()) != null) {
				Matcher m = p.matcher(line);
				while (m.find())
					list.add(m.group());
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		Iterator<String> it = list.iterator();
		File file = new File("D:\\forecast.txt");
		if (!file.exists())
			try {
				file.createNewFile();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		try {
			bufw = new BufferedWriter(new FileWriter(file));
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		String bm = "";
		while (it.hasNext()) {
			bm = it.next();
			String url = "http://www.weather.com.cn/weather/" + bm + ".shtml";
			try {
				Document doc = Jsoup.connect(url).get();
				Elements content = doc.getElementsByClass("con today clearfix");
				for (Element e : content) {
					Document conDoc = Jsoup.parse(e.toString());
					Elements cru = conDoc.getElementsByClass("crumbs fl");
					Elements sky = content.select("li[class^=sky skyid lv]");
					bufw.write(cru.text());// 地點
					bufw.newLine();
					for (Element sk : sky) {
						bufw.write(sk.text());
						bufw.newLine();
					}
					bufw.newLine();
				}
				bufw.newLine();
				bufw.flush();
			} catch (Exception e) {
				e.printStackTrace();
			}

		}
		try {
			System.out.println("天氣查詢完畢!!");
			if (bufw != null)
				bufw.close();
			if (bufr != null)
				bufr.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


爬取到的結果:

北京 > 城區
7日(今天) 多雲轉晴 6℃/ -5℃ 3-4級轉<3級
8日(明天) 晴間多雲轉晴 6℃/ -4℃ <3級
9日(後天) 多雲 6℃/ -3℃ <3級
10日(週日) 多雲 5℃/ -5℃ 3-4級轉<3級
11日(週一) 晴 3℃/ -8℃ <3級
12日(週二) 晴 2℃/ -6℃ <3級
13日(週三) 多雲 4℃/ -5℃ <3級


北京 > 朝陽
7日(今天) 多雲轉晴 6℃/ -5℃ 4-5級轉<3級
8日(明天) 晴 6℃/ -4℃ <3級
9日(後天) 多雲 6℃/ -3℃ <3級
10日(週日) 多雲 5℃/ -5℃ 3-4級轉<3級
11日(週一) 晴 3℃/ -8℃ <3級
12日(週二) 晴 2℃/ -6℃ <3級
13日(週三) 多雲 4℃/ -5℃ <3級


北京 > 順義
7日(今天) 多雲轉晴 5℃/ -5℃ 3-4級轉<3級
8日(明天) 晴 6℃/ -4℃ <3級
9日(後天) 多雲 6℃/ -3℃ <3級
10日(週日) 多雲 5℃/ -5℃ 3-4級轉<3級
11日(週一) 晴 3℃/ -8℃ <3級
12日(週二) 晴 2℃/ -6℃ <3級
13日(週三) 多雲 4℃/ -5℃ <3級


北京 > 懷柔
7日(今天) 多雲轉晴 5℃/ -7℃ 3-4級轉<3級
8日(明天) 晴 6℃/ -6℃ <3級
9日(後天) 多雲 6℃/ -5℃ <3級
10日(週日) 多雲 5℃/ -7℃ 3-4級轉<3級
11日(週一) 晴 3℃/ -10℃ <3級
12日(週二) 晴 2℃/ -8℃ <3級
13日(週三) 多雲 4℃/ -7℃ <3級

……

相關推薦

Java實現簡單爬蟲天氣預報

爬蟲爬取網頁的主要流程是: 1.向目標網頁發起請求; 2.對於獲取到的html檔案進行解析; 3.對解析後的資料進行儲存。 本次主要是爬取全國城市未來7天的天氣預報,爬取物件為中國天氣網,爬取的資料存入文字中。 對於html檔案的解析採用Jsoup結合正則表示式。 地區程

python3 爬蟲天氣預報多個城市七天資訊(三)

一、內容:        利用BeautifulSoup抓取中國天氣網各個城市7天的 時間 天氣狀態 最高溫 最低溫 的相關資訊,並記錄儲存在本地csv表格檔案中。 爬取的頁面截圖: html獲取資訊截圖: 二、原理:      1.利用requests獲取請求

JAVA實現簡單爬蟲多執行緒抓

在迴圈爬取得基礎上進行多執行緒爬蟲,本程式中使用的三個執行緒,執行緒為實現runnable介面,並使用物件鎖防止併發共同去訪問同一個物件。讓三個執行緒同時爬去同一個url並且得到的新的url不重複。 import java.io.*; import j

Python天氣預報

exc res http tee parser ror .cn date req 將持續更新…… 1.實現爬取一天的天氣預報 from urllib.request import urlopen from bs4 import BeautifulSoup import re

PHP簡單爬蟲 免費代理ip 一萬條

img mys i++ .com log mage top100 dai code 目標站:http://www.xicidaili.com/ 代碼: <?php require ‘lib/phpQuery.php‘; require ‘lib/QueryList.

Python天氣預報資料,並存入到本地EXCEL中

近期忙裡偷閒,搞了幾天python爬蟲,基本可以實現常規網路資料的爬取,比如糗事百科、豆瓣影評、NBA資料、股票資料、天氣預報等的爬取,整體過程其實比較簡單,有一些HTML+CSS+DOM樹等知識就很easy,我就以天氣預報資料的爬取為例,整理出來。 需求:採

Python簡單爬蟲多頁圖片

初學爬蟲簡單的爬了爬貼吧圖片 #!/usr/bin/python # coding utf-8 import re import time import urllib def getHtml():

Node.js實現簡單

學習【node.js】也有幾天時間了,所以打算寫著練練手;索然我作為一個後端的選手,寫起來還有那麼一絲熟悉的感覺。emmm~~  ‘貨’不多講 ,開搞........ 首先是依賴選擇:   程式碼塊如下: //引入依賴 //https請求 co

Springboot+JPA下實現簡易爬蟲--豆瓣電視劇資料

Springboot+JPA下實現簡易爬蟲--爬取豆瓣電視劇資料   前言:今天聽到產品那邊討論一些需求,好像其中一點是使用者要求我們爬蟲,在網頁上抓取一些資料然後存到我們公司資料庫中,眾所周知,爬蟲的實現對於python語言可是專家,而對於我們使用的Java語言,我也不確定可不可以,趁著無事,上網參考了下

java實現簡單的網路爬蟲電影天堂電影資訊)

在最開始,我們要在網上下載所用到的jar包,應為這只是一個簡單的網路爬蟲所以很多包裡的內容沒有用到。 下面幾個包就可以了。並且要引入這些包。 主類Bigdata.javaimport org.htmlparser.util.ParserException; public

Java爬蟲-使用HttpClient+Jsoup實現簡單爬蟲文字

##一、工具介紹   HttpClient是Apache Jakarta Common下的子專案,用來提供高效的、最新的、功能豐富的支援HTTP協議的客戶端程式設計工具包,並且它支援HTTP協議最新的版本和建議。HttpClient已經應用在很多的專案中,比如A

JAVA實現一個爬蟲知乎的上的內容(程式碼已無法使用)

在學習JAVA的過程中寫的一個程式,處理上還是有許多問題,爬簡單的頁面還行,複雜的就要跪. 爬取內容主要使用URLConnection請求獲得頁面內容,使用正則匹配頁面內容獲得所需的資訊存入檔案,使用正則尋找這個頁面中可訪問的URL,使用佇列儲存未訪問的URL

java網路程式設計____最簡單爬蟲(網站美女圖片)

package com.company.reptile; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileOutpu

簡單JAVA爬蟲晉江小說的簡介和評論

Java爬取晉江書城的某個分類下小說的簡介和評論 寫在前面,一開始是因為書荒又找不到自己喜歡的,就打算去晉江書城看看,結果排在前面的也不是我的菜,一本本挑又嫌太麻煩就打算把資料爬下來慢慢的看。分析了一下晉江的網頁,發現可以爬下來的資料有書名、作者、型別、簡介、標籤、收藏、下

關於java實現需要登入且帶驗證碼的定時網路爬蟲(的資料存庫)

 博主6月初的時候換了個工作,剛進來的時候什麼事沒有,愣是上班喝茶逛網站渡過了一週。那週週五的boss突然問我會不會爬蟲。 作為一個才工作一年的javaer表示根本沒接觸過,但是那種情況下你還敢說不會麼,但是當時也不敢說的很絕對,因此就和boss就會一點。 當時就隱隱約約有爬

pyhthon 利用爬蟲結合阿裏大於短信接口實現短信發送天氣預報

logging restapi cep elf except cnblogs author div time() 1 # -*- coding: utf-8 -*- 2 ‘‘‘‘‘ 3 SDK for alidayu 4 5

使用Python的BeautifulSoup庫實現一個可以1000條百度百科數據的爬蟲

otto 提取數據 tps summary 簡介 標題格式 段落 字典 如果 BeautifulSoup模塊介紹和安裝 BeautifulSoup BeautifulSoup是Python的第三方庫,用於從HTML或XML中提取數據,通常用作於網頁的解析器 Beauti

Java爬蟲京東商品信息

1.2 image 商品 void code 更改 size pri name 以下內容轉載於《https://www.cnblogs.com/zhuangbiing/p/9194994.html》,在此僅供學習借鑒只用。 Maven地址 <dependency>

java爬蟲資源,小白必須會的入門程式碼塊

java作為目前最火的語言之一,他的實用性也在被無數的java語言愛好者逐漸的開發,目前比較流行的爬取資源,用java來做也更簡單一些,下面是爬取網頁上所有手機型號,引數等極為簡便的資料   package day1805; import java.io.IOException; im

JAVA爬蟲網頁資料資料庫中,並且去除重複資料

pom檔案 <!-- 新增Httpclient支援 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&