【Python】抓取网页信息

最近开始利用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)

下一篇将记录把抓取回来的数据插入到数据库里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容