1. 程式人生 > >Python爬蟲--爬取歷史天氣資料

Python爬蟲--爬取歷史天氣資料

    寫在前面:爬蟲是老鼠屎在進入實驗室後接觸的第一個任務,當時剛剛接觸程式碼的老鼠屎一下子迎來了地獄難度的爬微博簽到資料。爬了一個多月毫無成果,所幸帶我的師兄從未給我疾言厲色,他給與了我最大的包容與理解。儘管無功而返,但是那一個月也給了老鼠屎充足的學習時間,讓老鼠屎對爬蟲有了一點點的理解和執念。今天老鼠屎由於專案原因又需要爬天氣資料,所以在這裡把老鼠屎的一點經驗寫在這裡,希望能給向曾經的我一樣迷茫的朋友們一點點幫助,付出的努力總會在不經意的時候綻放

目錄

2 爬取資料

4 全部程式碼

5 推薦資料

1 所需要的庫 

     爬蟲用到了requests庫和BeautifulSoup庫,這兩個庫分別用於對網頁的獲取和分析,對於資料的整理用到了pandas庫。這三個庫的安裝非常簡單,直接在cmd或者powershell當中pip install即可。唯一需要注意的是BeautifulSoup庫安裝時是在cmd中輸入pip install beautifulsoup4。安裝有問題的童鞋可以參考老鼠屎的

舊博文進行安裝。安裝好後即可匯入所需的庫。

import requests                                                                      
from bs4 import BeautifulSoup 
import pandas as pd

2 爬取資料

2.1 獲取網頁內容

    紅色方框內容為網頁的url,這裡需要用requests庫進行請求。

url = "https://lishi.tianqi.com/qingdao/201603.html"                                                                                                                                                   
response = requests.get(url)

    可以看一下response:。狀態碼為200證明請求成功。

2.2 對網頁進行解析

    對網頁解析用到BeautifulSoup庫。

soup = BeautifulSoup(response.text, 'html.parser')

    我們可以看一下現在的soup

    這裡有網頁裡所有的內容。我們需要從這裡提取出我們想要的內容。我們回到要爬取的網頁,按F12可以看到網頁的原始碼。

     這裡我們要爬的是左下角的天氣資料。我們點選中間上方紅色框框住的箭頭按鈕,點選要爬取的內容,即可在右面網頁原始碼快速找到它所對應的部分。

     我們可以發現,所需要的內容都在<div class="tqtongji2">標籤下。每個<ul>裡面包含一天的天氣,每個<li>裡面有不同的內容(如日期、天氣、最高氣溫、最低氣溫等)。我們可以用BeautifulSoup裡面的find和find_all來選取想要的內容。

tqtongji2=soup.find("div",{"class":"tqtongji2"})
ul_all=tqtongji2.find_all("ul")
data_all=[]
for i in ul_all:
    li_all=i.find_all("li")
    data=[]
    for j in li_all:
        data.append(j.text)
    data_all.append(data)

    可以看一下現在的data_all的樣子

3 資料的整理與儲存 

    接下來就是為資料儲存做準備啦。把資料放到DataFrame裡面,之後儲存至csv即可。

weather=pd.DataFrame(data_all)
weather.columns=["日期","最高氣溫","最低氣溫","天氣","風向","風力"]
weather.drop([0],inplace=True)
weather.to_csv("xxx.csv",encoding="utf_8_sig")

    這裡需要注意的是,因為內容中有中文,直接儲存會亂碼,所以儲存時要加上encoding="utf_8_sig"。詳細情況可以參考老鼠屎的舊博文

4 全部程式碼

import requests                                                                      
from bs4 import BeautifulSoup 
import pandas as pd

url = "https://lishi.tianqi.com/qingdao/201603.html"                                                                                                                                                   
response = requests.get(url)                                                     
soup = BeautifulSoup(response.text, 'html.parser') 
tqtongji2=soup.find("div",{"class":"tqtongji2"})
ul_all=tqtongji2.find_all("ul")
data_all=[]
for i in ul_all:
    li_all=i.find_all("li")
    data=[]
    for j in li_all:
        data.append(j.text)
    data_all.append(data)
weather=pd.DataFrame(data_all)
weather.columns=["日期","最高氣溫","最低氣溫","天氣","風向","風力"]
weather.drop([0],inplace=True)
weather.to_csv("xxx.csv",encoding="utf_8_sig")

5 推薦資料

    最後推薦一點老鼠屎認為不錯的資料。

    寫在後面:儘管老鼠屎爬的這個是個非常簡單的例子,但是老鼠屎希望通過自己的親身經歷鼓勵那些迷茫的童鞋們不要拋棄不要放棄。希望大家都能夠學有所成

相關推薦

Python爬蟲--歷史天氣資料

    寫在前面:爬蟲是老鼠屎在進入實驗室後接觸的第一個任務,當時剛剛接觸程式碼的老鼠屎一下子迎來了地獄難度的爬微博簽到資料。爬了一個多月毫無成果,所幸帶我的師兄從未給我疾言厲色,他給與了我最大的包容與理解。儘管無功而返,但是那一個月也給了老鼠屎充足的學習時間,讓老鼠屎對爬蟲

(8)Python爬蟲——豆瓣影評資料

利用python爬取豆瓣最受歡迎的影評50條的相關資訊,包括標題,作者,影片名,影片詳情連結,推薦級,迴應數,影評連結,影評,有用數這9項內容,然後將爬取的資訊寫入Excel表中。具體程式碼如下: #!/usr/bin/python # -*- codin

python爬蟲 貓眼電影資料

# 定義一個函式獲取貓眼電影的資料​ import requests def main(): url = url = 'http://maoyan.com/board/4?offset=0' html = requests.get(url).text

python歷史天氣

初衷 十一回家走訪親戚,家長們聊關於附近工廠的事情。筆者家附近有一個清潔能源廠,同時還有一個水庫,這種複雜的空氣對流,夏季容易遭受冰雹的侵害。 以水果謀生的農戶,躲得過人禍,免不了天災。筆者暗想,用一定的大資料分析,證明這兩種存在對當地的影響。 於是有了此文。 程式碼 網上相關資

Python 爬蟲 單個基因 表格資料的生物學功能 (urllib+正則表示式):

Python 爬蟲 爬取單個基因的生物學功能(urllib+正則表示式): import re import urllib from urllib import request url = 'https://www.ncbi.nlm.nih.gov/gene/?term=FUT1'

Python爬蟲網上圖片原始碼,可用來製作深度學習資料

這次利用python設計一個爬取百度圖片上的圖片的原始碼,其中利用的是python的urllib,如果沒有裝的,可以使用Anconda在環境裡進行安裝或者 pip install urllib 這兩種方式都可以安裝,長話短說,上圖吧,點選執行後,輸入你要下載的圖片型別: 比如,熊貓?美女?

python爬蟲今日頭條APP資料(無需破解as ,cp,_cp_signature引數)

#!coding=utf-8 import requests import re import json import math import random import time from requests.packages.urllib3.exceptions import Insecure

python爬蟲京東店鋪商品價格資料(更新版)

主要使用的庫: requests:爬蟲請求並獲取原始碼 re:使用正則表示式提取資料 json:使用JSON提取資料 pandas:使用pandans儲存資料 ##sqlalchemy :備用方案,上傳資料到mysql 以下是原始碼: # -*- coding:utf

python爬蟲 淘寶搜尋頁面商品資訊資料

主要使用的庫: requests:爬蟲請求並獲取原始碼 re:使用正則表示式提取資料 json:使用JSON提取資料 pandas:使用pandans儲存資料 以下是原始碼: #!coding=utf-8 import requests import re import

python 爬蟲 網易嚴選全網商品價格評論資料

1.獲取商品目錄 在Chrome瀏覽器開發者工具中,可以找到目錄的JS地址: http://you.163.com/xhr/globalinfo//queryTop.json  得到商品資料 def get_categoryList():

Python 爬蟲 單個基因 表格資料的生物學功能 (urllib+正則表示式):

Python 爬蟲 爬取單個基因的生物學功能(urllib+正則表示式): import re import urllib from urllib import request url = ‘https://www.ncbi.nlm.nih.gov/gene

Python爬蟲 資料存入MongoDB

from bs4 import BeautifulSoup import requests import time import pymongo client = pymongo.MongoClient('Localhost', 27017) ceshi = client[

python爬蟲-愛情公寓電影(2018)豆瓣短評並資料分析

說起這部電影,我本人並沒有看,其實原先是想為了情懷看一下,但是好友用親身經歷告訴我看來會後悔的,又去看了看豆瓣評分,史無前例的,,,低。 出於興趣就爬取一下這部電影在豆瓣上的短評,並且用詞雲分析一下。  1.分析url 經過分析不難發現每一頁短評的url都是一致的除

Python爬蟲網頁資料並存儲(一)

環境搭建 1.需要事先安裝anaconda(或Python3.7)和pycharm *anaconda可在中科大映象下下載較快 2.安裝中遇到的問題: *anaconda(記得安裝過程中點新增路徑到path裡,沒新增的話手動新增: 計算機右鍵屬性——高階系統設

Python 爬蟲 京東 商品評論 資料,並存入CSV檔案

利用閒暇時間寫了一個抓取京東商品評論資料的爬蟲。之前寫了抓取拉勾網資料的爬蟲,請 參考1,參考2。 我的開發環境是Windows + Anaconda3(Python 3.6),家用電腦沒安裝Linux(Linux下也是可以的)。 京東的評論資料是通過介面提供的,所以先找

Python爬蟲NBA資料

爬取的網站為:stat-nba.com,本文爬取的是NBA2016-2017賽季常規賽至2017年1月7日的資料 改變url_header和url_tail即可爬取特定的其他資料。 原始碼如下: #coding=utf-8 import sys reload(sys) sy

python爬蟲 淘寶網頁資料

O、requests 和 re 庫的介紹 requests庫 是一個小型好用的網頁請求模組,可用於網頁請求,常用來編寫小型爬蟲 安裝requests可以使用pip命令: 在命令列輸入 pip install requests re庫是正則表示式庫,是p

python爬蟲美團西安美食資料

經歷了一週的種種波折,參考了CSDN上N多博主的部落格,終於搞定了美團西安美食資料,在此做簡單記錄:愚蠢如我,不知如何讓爬蟲程式翻下一頁,只好看了前後兩頁請求的網址有什麼不同,後來發現第一頁字尾是‘pn1’,第二頁是‘pn2’,以此類推……所以手動查看了一共有15頁之後,萌生

使用python爬蟲百度手機助手網站中app的資料

一、爬取程式流程圖 爬蟲程式流程圖如下: Created with Raphaël 2.1.0開始分析地址結構獲得app類別頁的url爬取app詳情頁url爬取App詳情頁的資料將爬取資料儲存到json檔案結束 二、具體步驟 1.分析

Python爬蟲-糗事百科段子

hasattr com ima .net header rfi star reason images 閑來無事,學學python爬蟲。 在正式學爬蟲前,簡單學習了下HTML和CSS,了解了網頁的基本結構後,更加快速入門。 1.獲取糗事百科url http://www.qiu