欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 网页爬虫--赶集网租房信息爬取(Python)

网页爬虫--赶集网租房信息爬取(Python)

2025/4/17 0:02:41 来源:https://blog.csdn.net/2301_80103687/article/details/147227215  浏览:    关键词:网页爬虫--赶集网租房信息爬取(Python)

代码:

import requests #网络请求

from requests import Response #网络响应

import re #解析页面数据 正则

import xlwt #存储数据 excel

base_url="https://xa.58.com/zufang/pn{}"  #定义了一个名为 base_url 的字符串变量,用于构建访问特定页面的 URL

header ={

    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0"

}    #网页中网络里面找的

#1.请求网页数据

def get_data(url):

    #发送网络请求,将服务的相应放到resp中

    resp:Response = requests.get(url,headers=header)

    #处理响应

    if resp.status_code==200:#检查前面发送的请求(resp)的状态码是否为 200

        print ("请求成功!")

        print(resp.text)

        parse_data(resp.text)

    else:

        print("请求失败!")

sublist = []

house_list = []

#2. 解析数据re

def parse_data(data):

    houses = re.findall(r"""

    <li.+?house-cell.+?<a.+?strongbox.+?>(.+?)</ a>.+?room">(.+?)</p >.+?"money".+?class="strongbox">(.+?)</b>

    """, data, flags=re.VERBOSE | re.DOTALL)

    for h in houses:

        print(h[0].lstrip().rstrip()) #这行代码的作用是打印出列表 h 中的第一个元素,并去除其左右两端的空格。

                                     # lstrip() 方法用于去除字符串左侧的空格,rstrip() 方法用于去除字符串右侧的空格

        ret = h[1].split("     &nbsp;&nbsp;&nbsp;&nbsp") #这行代码的作用是将列表 h 中的第二个元素按照字符串 " &nbsp;&nbsp;&nbsp;&nbsp" 进行分割

        print(ret[0],ret[1].rstrip())

        print(h[2])

        sublist.append(h[0].lstrip().rstrip())#将列表 h 中的第一个元素去除左右两端的空格后,添加到 sublist 这个列表中

        sublist.append(ret[1].rstrip())

        sublist.append(h[2])

        house_list.append(sublist)

    print(house_list)

    save_data(house_list)

#3.存储数据到excel文件中

def save_data(list):

# 工作簿--->工作表--->单元格

# 1.创建工作簿

    workbook = xlwt.Workbook()

# 2.在工作簿里面添加工作表

    sheet = workbook.add_sheet("西安租房信息")

# 3.在工作表中添加单元格

    for row in range(len(list)):  # 0,1,2,3

        for col in range(len(list[row])):

            #print(row, col, list[row][col])

            sheet.write(row, col, list[row][col])

# 4.保存工作簿

    workbook.save("赶集网——租房信息.xlsx")

if __name__=='__main__':

    for i in range(1,6):

        print(f"开始请求第{i}页数据")

        get_data(base_url.format(i))

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词