2、歷史天氣首頁信息提取
阿新 • • 發佈:2017-05-09
result pan .get 我們 並不是 response img image 天氣
一、引言
上篇給大家介紹了Python爬蟲索要爬去的源網站及所需的軟件,本篇開始,將正式的開始爬取數據。
二、爬蟲利器 Beautiful Soup
1、簡單來說,Beautiful Soup是python的一個庫,最主要的功能是從網頁抓取數據。
2、安裝 Beautiful Soup
pip install beautifulsoup4
然後需要安裝 lxml
pip install lxml
三、開始爬取網頁源碼
1 # coding = utf-8 2 3 import urllib4 import urllib.request 5 from bs4 import BeautifulSoup 6 7 8 def getCityLinks(): 9 url = ‘http://lishi.tianqi.com/‘ 10 response = urllib.request.urlopen(url, timeout=20) 11 result = response.read() 12 soup = BeautifulSoup(result, "lxml") 13 print(soup) 14 getCityLinks()
運行代碼:
結果:
# coding = utf-8 import urllib import urllib.request from bs4 import BeautifulSoup def getCityLinks(): url = ‘http://lishi.tianqi.com/‘ response = urllib.request.urlopen(url, timeout=20) result = response.read() soup = BeautifulSoup(result, "lxml") links= soup.select("ul > li > a") for a in links: print(a) getCityLinks()
四、提取城市信息
至此我們已經獲取了網頁的源代碼,下一步我們索要做的就是提取我們感興趣的信息。
我們的目標數據為城市信息,且都是a標簽,分析html結構,使用 soup.select("ul > li > a") 提取符合該條件下的所有a標簽
# coding = utf-8 import urllib import urllib.request from bs4 import BeautifulSoup def getCityLinks(): url = ‘http://lishi.tianqi.com/‘ response = urllib.request.urlopen(url, timeout=20) result = response.read() soup = BeautifulSoup(result, "lxml") links = soup.select("ul > li > a") for a in links: print(a) getCityLinks()
再一次運行,得到如下數據。
並不是所有的a標簽都是我們需要的數據,因此再次過濾。
# coding = utf-8 import urllib import urllib.request from bs4 import BeautifulSoup def getCityLinks(): url = ‘http://lishi.tianqi.com/‘ response = urllib.request.urlopen(url, timeout=20) result = response.read() soup = BeautifulSoup(result, "lxml") links = soup.select("ul > li > a") for a in links: if a.get_text() + ‘歷史天氣‘ == a.get(‘title‘): city = a.get_text() url = a.get(‘href‘) print(a) getCityLinks()
再次運行後,得到的結果才是我們想要的。
2、歷史天氣首頁信息提取