最近开始利用python实操抓取网页链接内容,记录学习过程,熟悉python操作。
版本:Python 3.6.0
IDE:PyCham
获取网页内容思路:
1、获取网页源代码
2、筛选出需要的信息
需要技能:
基础python的语法规则
正则表达式基础信息
通过Python把页面内容读取出来。
import urllib.request #接入页面读取模块
import re #接入正则表达式模块
#获取链接的内容
def getHtml(url):
page = urllib.request.urlopen(url) #获取链接的全部内容
html = page.read() #读取链接内容
return html
大部分页面内容是不需要的,通过用正则表达式筛选出需要的信息。
#获取标题
def getTitle(html):
reg = r'jpg" alt="(.+?)"' #定义要获取的文字截取部分
titlere = re.compile(reg) #提取提取到的文字部分
html = html.decode('utf-8') # python3
titlelist = re.findall(titlere, html) #提取内容以数据形式保存
return titlelist
#获取楼盘名
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
#获取楼盘总价
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
#获取楼盘面积
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
#获取楼盘均价
def getAvePrice(html):
reg = r'data-price=".+?"><span>单价(.+?)元/平米</span>'
AvePricere = re.compile(reg)
html = html.decode('utf-8')
AvePricelist = re.findall(AvePricere, html)
return AvePricelist
#获取楼盘详情链接
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
#获取楼盘编号
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
这样就基本抓取完所有我想要的信息了。可以把返回的数列做个变量,方便之后的操作了。
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)
下一篇将记录把抓取回来的数据插入到数据库里。