国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python天氣預報采集器實現代碼(網頁爬蟲)

2020-02-23 04:48:24
字體:
來源:轉載
供稿:網友
爬蟲簡單說來包括兩個步驟:獲得網頁文本、過濾得到數據。
  1、獲得html文本。
  python在獲取html方面十分方便,寥寥數行代碼就可以實現我們需要的功能。
代碼如下:
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
page.close()
return html

這么幾行代碼相信不用注釋都能大概知道它的意思。

  2、根據正則表達式等獲得需要的內容。

  使用正則表達式時需要仔細觀察該網頁信息的結構,并寫出正確的正則表達式。
  python正則表達式的使用也很簡潔。我的上一篇文章《Python的一些用法》介紹了一點正則的用法。這里需要一個新的用法:
代碼如下:
def getWeather(html):
reg = '<a title=.*?>(.*?)</a>.*?<span>(.*?)</span>.*?<b>(.*?)</b>'
weatherList = re.compile(reg).findall(html)
return weatherList

其中reg是正則表達式,html是第一步獲得的文本。findall的作用是找到html中所有符合正則匹配的字符串并存放到weatherList中。之后再枚舉weatheList中的數據輸出即可。
  這里的正則表達式reg有兩個地方要注意。
  一個是“(.*?)”。只要是()中的內容都是我們將要獲得的內容,如果有多個括號,那么findall的每個結果就都包含這幾個括號中的內容。上面有三個括號,分別對應城市、最低溫和最高溫。
  另一個是“.*?”。python的正則匹配默認是貪婪的,即默認盡可能多地匹配字符串。如果在末尾加上問號,則表示非貪婪模式,即盡可能少地匹配字符串。在這里,由于有多個城市的信息需要匹配,所以需要使用非貪婪模式,否則匹配結果只剩下一個,且是不正確的。
  
  python的使用確實十分方便:)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石城县| 奎屯市| 津市市| 阿克苏市| 汤原县| 昔阳县| 黄山市| 永胜县| 皋兰县| 娱乐| 常州市| 镇宁| 大足县| 合阳县| 临清市| 恭城| 普宁市| 昌图县| 武功县| 博客| 南木林县| 海宁市| 怀集县| 芦溪县| 兰州市| 咸阳市| 华阴市| 湘阴县| 获嘉县| 胶南市| 云浮市| 木兰县| 滨海县| 谢通门县| 思南县| 普陀区| 龙泉市| 泰顺县| 岳阳县| 深圳市| 宝丰县|