最近開(kāi)始利用python實(shí)操抓取網(wǎng)頁(yè)鏈接內(nèi)容,記錄學(xué)習(xí)過(guò)程,熟悉python操作。
版本:Python 3.6.0
IDE:PyCham
獲取網(wǎng)頁(yè)內(nèi)容思路:
1敏释、獲取網(wǎng)頁(yè)源代碼
2、篩選出需要的信息
需要技能:
基礎(chǔ)python的語(yǔ)法規(guī)則
正則表達(dá)式基礎(chǔ)信息
通過(guò)Python把頁(yè)面內(nèi)容讀取出來(lái)摸袁。
import urllib.request #接入頁(yè)面讀取模塊
import re #接入正則表達(dá)式模塊
#獲取鏈接的內(nèi)容
def getHtml(url):
page = urllib.request.urlopen(url) #獲取鏈接的全部?jī)?nèi)容
html = page.read() #讀取鏈接內(nèi)容
return html
大部分頁(yè)面內(nèi)容是不需要的钥顽,通過(guò)用正則表達(dá)式篩選出需要的信息。
#獲取標(biāo)題
def getTitle(html):
reg = r'jpg" alt="(.+?)"' #定義要獲取的文字截取部分
titlere = re.compile(reg) #提取提取到的文字部分
html = html.decode('utf-8') # python3
titlelist = re.findall(titlere, html) #提取內(nèi)容以數(shù)據(jù)形式保存
return titlelist
#獲取樓盤(pán)名
def getLouPan(html):
reg = r'data-el="region">(.+?)</a>'
LouPanre = re.compile(reg)
html = html.decode('utf-8')
LouPanlist = re.findall(LouPanre, html)
return LouPanlist
#獲取樓盤(pán)總價(jià)
def getPrice(html):
reg = r'class="totalPrice"><span>(.+?)</span>'
Pricere = re.compile(reg)
html = html.decode('utf-8')
Pricelist = re.findall(Pricere, html)
return Pricelist
#獲取樓盤(pán)面積
def getSquare(html):
reg = r'data-el="region">.+?</a>(.+?)</div></div><div class="flood">'
Squarere = re.compile(reg)
html = html.decode('utf-8')
Squarelist = re.findall(Squarere, html)
return Squarelist
#獲取樓盤(pán)均價(jià)
def getAvePrice(html):
reg = r'data-price=".+?"><span>單價(jià)(.+?)元/平米</span>'
AvePricere = re.compile(reg)
html = html.decode('utf-8')
AvePricelist = re.findall(AvePricere, html)
return AvePricelist
#獲取樓盤(pán)詳情鏈接
def getDetailurl(html):
reg = r'<div class="title"><a class="" href="(.+?)"'
Detailurl = re.compile(reg)
html = html.decode('utf-8')
Detailurllist = re.findall(Detailurl, html)
return Detailurllist
#獲取樓盤(pán)編號(hào)
def getHouseID(html):
reg = r'<div class="title"><a class="" href="https://gz\.lianjia\.com/ershoufang/(.+?)\.html"'
HouseID = re.compile(reg)
html = html.decode('utf-8')
HouseIDlist = re.findall(HouseID, html)
return HouseIDlist
這樣就基本抓取完所有我想要的信息了靠汁》浯螅可以把返回的數(shù)列做個(gè)變量,方便之后的操作了膀曾。
html = getHtml("https://gz.lianjia.com/ershoufang/p1/")
Title = getTitle(html)
Loupan = getLouPan(html)
Price = getPrice(html)
Square = getSquare(html)
AvePrice = getAvePrice(html)
Detailurl = getDetailurl(html)
HouseID = getHouseID(html)
下一篇將記錄把抓取回來(lái)的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)里县爬。