自如网租房价格反爬 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()
相关推荐
会编程的土豆1 分钟前
简易植物大战僵尸游戏 JavaScript版之html
javascript·游戏·html
雯0609~3 分钟前
hiprint-官网vue完整版本+实现客户端配置+可实现直接打印(在html版本增加了条形码、二维码拖拽等)
前端·javascript·vue.js
VT.馒头3 分钟前
【力扣】2705. 精简对象
javascript·数据结构·算法·leetcode·职场和发展·typescript
GISer_Jing5 分钟前
构建高性能Markdown引擎开发计划
前端·aigc·ai编程
摘星编程9 分钟前
在OpenHarmony上用React Native:Switch禁用状态
javascript·react native·react.js
铁蛋AI编程实战15 分钟前
ChatWiki 开源 AI 文档助手搭建教程:多格式文档接入,打造专属知识库机器人
java·人工智能·python·开源
程序员小远16 分钟前
UI自动化测试用例管理平台搭建
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
小明_GLC19 分钟前
Docker 构建镜像一直卡在下载 Python?
python·docker·容器
CHU72903523 分钟前
生鲜商城小程序前端功能版块:适配生鲜采购核心需求
前端·小程序
小白学大数据28 分钟前
Python爬虫实现无限滚动页面的自动点击与内容抓取
开发语言·爬虫·python·pandas