自如网租房价格反爬 CSS偏移

python 复制代码
import re
import requests
from io import BytesIO
import ddddocr
from lxml import etree


def get_yellow_price(img_url):
    response = requests.get(img_url).content
    img_bytes = BytesIO(response)
    ocr = ddddocr.DdddOcr(beta=True, show_ad=False)
    yellow_price = ocr.classification(img_bytes.getvalue())
    return yellow_price
        

def main():
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
    }
    response = requests.get('https://www.ziroom.com/z/', headers=headers).text
    
    # 黄色价格图片
    img_url = 'https:' + re.search('//static8.ziroom.com/phoenix/pc/images/price/new-list/(.*?).png', response).group()
    yellow_price = get_yellow_price(img_url)

    html = etree.HTML(response)
    div_list = html.xpath('//div[@class="Z_list-box"]/div') # 第5个div是广告
    del div_list[4]  # 删除索引为4的元素(第5个元素)  
    for div in div_list:
        title = div.xpath('./div[3]/h5/a/text()')[0]
        styles = div.xpath('.//div[3]/div[2]/div/span[position()>1]/@style')
        price = ''
        for style in styles:
            pos = re.findall(r'background-position: -(.*?)px', style)[0]
            # 红色字体价格 固定
            if 'red.png' in style:
                red_price = '8652039147'  # 红色价格数字  不变
                pos_price = red_price[int(float(pos)/20)]
                
            # 黄色字体价格 
            else:
                pos_price = yellow_price[int(float(pos)/21.4)]
            price += pos_price

        print(f"{title} ¥{price}/月")


if __name__ == "__main__":
    main()
相关推荐
Aurora_th4 分钟前
蓝桥杯py组入门(bfs广搜)
python·蓝桥杯·bfs·宽度优先
黑客学长-刘备5 分钟前
终于有人把网络安全就业方向一口气讲清了(非常详细)零基础入门到精通,收藏这一篇就够了
java·运维·服务器·网络·python·安全·web安全
小爬虫程序猿5 分钟前
Java爬虫:在1688上“照片快递”上传图片
java·开发语言·爬虫
Json_181790144806 分钟前
小红书笔记详情API接口系列(概述到示例案例)
开发语言·python
小呆i11 分钟前
Vue生成名片二维码带logo并支持下载
前端·javascript·vue.js
沃野_juededa26 分钟前
微信小程序app.js里面onLaunch里面的函数比page里面的onshow里面的方法后执行
javascript·微信小程序·小程序
Loong_DQX1 小时前
【flask】 前后端通信方式 原生js的ajax,总结
后端·python·flask
tian-ming1 小时前
(五)Web前端开发进阶2——AJAX
前端
盒马盒马1 小时前
Ajax:跨域 & JSONP
前端·ajax
QEasyCloud20221 小时前
简道云和企业微信数据同步集成案例
java·大数据·前端