python爬虫—爬取房网代码

“”"
http://gz.ihk.cn/myxf/houselist/?mark=gzxf089 第一页
http://gz.ihk.cn/myxf/houselist/p2/?mark=gzxf089
http://gz.ihk.cn/myxf/houselist/p3/?mark=gzxf089

“”"

import requests
import re
class House():
    def __call__(self, *args, **kwargs):
        self.run()
        self.page_start=page_start
        self.page_end=page_end
    def run(self):
        #获取基础的url
        for page in range(int(page_start),int(page_end)+1):
            base_url="http://gz.ihk.cn/myxf/houselist/p{}/?mark=gzxf089".format(page)
            response=requests.get(base_url)
        #获取HTML文件
            html=response.text
        # print(html)#打印查看是否获取到
            print('========================={}页开始下载==============================='.format(page))

        self.get_data(html)#调用get_data并且传递参数html
def get_data(self,html):
    #获取想要爬取的详细信息
    #缩小范围,获取div列表
    div_list=re.findall('<div class="n_conlistpic">.*?<div class="n_conlistrliioc">',html,re.S)
    # print(div_list[1])#查看第一个列表元素以便于继续写代码
    # print(len(div_list))
    #循环获取每一个楼房的信息onclick
    for div in div_list:
        #1 获取楼房的名称
        name=re.findall('<a><strong>(.*?)</strong></a>',div)[0]
        # print(name)
        #2 获取楼房的楼盘的描述
        #(1 首先获取每一个<div class="n_conlistrbrief">标签,然后再获取里面的span标签
        details_div=re.findall('<div class="n_conlistrbrief">([\w\W]*?)</div>',div)[0]
        # print(details_div)
        #获取详情
        details=re.findall('<span>(.*?)</span>',details_div)[0]
        # print(details)
        # 爬取住户类型
        type=re.findall('<div class="n_conlistradd"><span>主力户型:(.*?)</span',div)[0]
        # print(type)
        #爬取地址
        address=re.findall('<div class="n_conlistradd"><em class="i12"></em><span>(.*?)</span></div>',div)[0]
        # print(address)
        # 爬取图片
        picture =re.findall('data-original="(.*?)"',div)
        # print(picture)
        #爬取价格:
        try:
            price=re.findall('<li><strong>(.*?)</strong><b>元/m²起</b></li>',div)[0]
            # print(price)
        except IndexError as e:
            print(e)
        finally:
            house_dict={
                'name':name,
                'details':details,
                'type':type,
                'address':address,
                'price':price,
                'picture':picture
            }
            print(house_dict)

if __name__ == '__main__':
    page_start=input('请输入要爬的起始页:')
    page_end=input('输入要爬取的终止页')
    home=House()
    home(page_start,page_end)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值