爬虫实战-房天下(bengbu.zu.fang.com/)数据爬取

devtools/2024/10/21 11:37:17/

详细代码链接icon-default.png?t=N7T8https://flowus.cn/hbzx/3c42674d-8e6f-42e3-a3f6-bc1258034676

import requests
from lxml import etree #xpath解析库
def 源代码(url):
    cookies = {
        'global_cookie': 'xeqnmumh38dvpj96uzseftwdr20lvkwkfb9',
        'otherid': 'b44a1837638234f1a0a15e37877e0685',
        'g_sourcepage': 'zf_fy%5Elb_pc',
        '__utma': '147393320.818863681.1714391725.1714391725.1714391725.1',
        '__utmc': '147393320',
        '__utmz': '147393320.1714391725.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
        '__utmt_t0': '1',
        '__utmt_t1': '1',
        '__utmt_t2': '1',
        'keyWord_recenthousebengbu': '%5b%7b%22name%22%3a%22%e9%be%99%e5%ad%90%e6%b9%96%22%2c%22detailName%22%3a%22%22%2c%22url%22%3a%22%2fhouse-a011914%2fs31%2f%22%2c%22sort%22%3a1%7d%5d',
        'city': 'sh',
        'ASP.NET_SessionId': '4fpr5u3w5zqqzitrnwafk3cr',
        'zf_csrfcookie': '1cCMHJcsaY7XgtGVMdiMdsydBeGKPxx7G1pYnsK0yn4vRI361O_aeBQfC7SAKi4gktL0kQ2',
        'unique_cookie': 'U_xeqnmumh38dvpj96uzseftwdr20lvkwkfb9*6',
        '__utmb': '147393320.18.10.1714391725',
    }
    
    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
        'accept-language': 'zh-CN,zh;q=0.9',
        'cache-control': 'max-age=0',
        # 'cookie': 'global_cookie=xeqnmumh38dvpj96uzseftwdr20lvkwkfb9; otherid=b44a1837638234f1a0a15e37877e0685; g_sourcepage=zf_fy%5Elb_pc; __utma=147393320.818863681.1714391725.1714391725.1714391725.1; __utmc=147393320; __utmz=147393320.1714391725.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt_t0=1; __utmt_t1=1; __utmt_t2=1; keyWord_recenthousebengbu=%5b%7b%22name%22%3a%22%e9%be%99%e5%ad%90%e6%b9%96%22%2c%22detailName%22%3a%22%22%2c%22url%22%3a%22%2fhouse-a011914%2fs31%2f%22%2c%22sort%22%3a1%7d%5d; city=sh; ASP.NET_SessionId=4fpr5u3w5zqqzitrnwafk3cr; zf_csrfcookie=1cCMHJcsaY7XgtGVMdiMdsydBeGKPxx7G1pYnsK0yn4vRI361O_aeBQfC7SAKi4gktL0kQ2; unique_cookie=U_xeqnmumh38dvpj96uzseftwdr20lvkwkfb9*6; __utmb=147393320.18.10.1714391725',
        'priority': 'u=0, i',
        'referer': 'https://sh.zu.fang.com/house/i33/',
        'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'sec-fetch-dest': 'document',
        'sec-fetch-mode': 'navigate',
        'sec-fetch-site': 'same-origin',
        'sec-fetch-user': '?1',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    }
    response = requests.get(url, cookies=cookies, headers=headers).text
    #response是源代码
    return response
if __name__=='__main__':
    for fan in range(1,10):
        url='https://sh.zu.fang.com/house/i3{fan}/'
        res=源代码(url)
        res=etree.HTML(res) #初始化
        #//*[@id="rentid_D09_01_02"]/a   a后面没有加/text()
        #//*[@id="rentid_D09_60_02"]/a
        #//*[@id="rentid_D09_02_02"]/a
        #//*[@id="rentid_D09_31_02"]/a
        for i in range(1,61):
            if i<10:
                ix='0'+str(i)
                xp=f'//*[@id="rentid_D09_{ix}_02"]/a/text()'
            else:
                xp=f'//*[@id="rentid_D09_{i}_02"]/a/text()'
            title=res.xpath(xp)[0]
            print(title,end=' ')
            xp=f'//*[@id="listBox"]/div[3]/dl[{i}]/dd/p[2]/text()'
            #//*[@id="listBox"]/div[3]/dl[60]/dd/p[2]
            p=res.xpath(xp)[0].strip()
            print(p,end=' ')
            xp=f'//*[@id="listBox"]/div[3]/dl[{i}]/dd/div[2]/p/span/text()'
            #//*[@id="listBox"]/div[3]/dl[60]/dd/div[2]/p/span
            jg=res.xpath(xp)[0]      
            print(jg)

 


http://www.ppmy.cn/devtools/31032.html

相关文章

如何Vue.js 结合 Element UI 进行表单验证

Vue.js 结合 Element UI 进行表单验证是一个常见的做法。Element UI 提供了一套丰富的表单组件&#xff0c;并内置了表单验证功能。以下是一个简单的示例&#xff0c;展示如何使用 Vue 和 Element UI 进行表单验证&#xff1a; 首先&#xff0c;确保你已经安装了 Vue 和 Eleme…

【链表——数据结构】

文章目录 1.单链表1.定义2.基本操作2.1.不带头结点2.2后插2.3前插2.4删除2.5按位查找2.6按值查找2.7求单链表长度2.8 建表 2.双链表1.初始化2.插入(后插)3.删除(后删)4.遍历 3.循环链表1.循环单链表2.循环双链表3.代码问题 4.静态链表1.简述基本操作的实现1.初始化3.删除某个结…

Android数据恢复软件快速比较:Android数据恢复的7最佳工具

您在 Android 设备上保留哪些类型的数据&#xff1f;如果您和大多数人一样&#xff0c;那么您可能已经列出了文档、照片、视频和音频文件。如果您使用智能手机或平板电脑的时间足够长&#xff0c;我们愿意打赌您拥有Android数据丢失的第一手经验。 幸运的是&#xff0c;我们也…

4.2_文本处理工具

## 1.grep ## grep [Globally search a Regular Expression and Print] &#xff08;1&#xff09;grep 格式 ##grep 格式## grep 匹配条件 处理文件 grep root passwd #过滤root关键字 grep -E egrep #扩展搜索 grep -i root passwd ##忽…

[实例] Unity Shader 利用顶点着色器模拟简单水波

我们都知道顶点着色器可以用来改变模型各个顶点的位置&#xff0c;那么本篇我们就利用顶点着色器来做一个模拟简单水波的应用。 1. 简谐运动 在进行模拟水波之前&#xff0c;我们需要了解简谐运动&#xff08;Simple Harmonic Motion&#xff09;公式&#xff1a; 其中&#…

数据结构(三)------栈

制作不易&#xff0c;三连支持一下呗&#xff01;&#xff01;&#xff01; 文章目录 前言一、什么是栈二、栈的实现 1.栈的结构2.栈的初始化和销毁3.栈的插入数据和删除数据4.取栈顶元素总结 前言 前面我们介绍了第二种数据结构---链表&#xff0c;这里我们继续介绍下一种数据…

Android4.4真机移植过程笔记(一)

1、RK源码编译 获取内核源码&#xff1a; git clone git172.28.1.172:rk3188_kernel -b xtc_ok1000 内核编译环境&#xff1a; 从172.28.1.132编译服务器的/data1/ZouZhiPing目录下拷贝toolchain.tar.gz&#xff08;交叉编译工具链&#xff09;并解压到与rk3188_kernel同级目…

C# 字段(Field)与属性(Property)的区别

字段和属性&#xff0c;都是成员变量&#xff0c;都用于存取数据。字段读写无限制&#xff0c;属性通过get和set方法可以控制读写&#xff08;比如可以在年龄Age属性的set方法中限制&#xff0c;当赋值的value大于200时&#xff0c;则赋值默认值100&#xff0c;从而确保数据准确…