Advertisement

实战—爬取网站链家租房信息

阅读量:

1.明确目标:拿下该页面的28个租房链接

在这里插入图片描述

2.分析租房页面源码

在这里插入图片描述

3.导入第三方库

复制代码
    C:\Users\Administrator>pip install requests
    C:\Users\Administrator>pip install bs4
    
    
      
      
    
    AI助手

4.获取页面每个租房信息

在这里插入图片描述
复制代码
    #!/usr/bin/python3
    # -*- coding: UTF-8 -*-
    
    import requests
    from bs4 import BeautifulSoup
    
    links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
    respose = requests.get(links_url)
    # print(respose)       #打印响应码
    # print(respose.text)  #打印页面内容
    
    # 这里的"html.parser"是解析器,取决于代码编写环境
    soup = BeautifulSoup(respose.text, "html.parser")
    # print(soup)  #用BeautifulSoup获取页面内容
    
    #这里的class_是为了与python中的关键字class区分
    links_p = soup.find_all('p', class_='content__list--item--title twoline')
    links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
    # for循环实现列表中的内容换行输出
    for lin in links:
    print(lin)
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手

成功租房获取链接:

复制代码
    D:\software\Python37-32\python.exe D:/code/python/python基础/爬取网站链家租房信息.py
    https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html
    https://nc.lianjia.com/zufang/zufang/NC2420193010059837440.html
    https://nc.lianjia.com/zufang/zufang/NC2374575006383341568.html
    ...
    
    
      
      
      
      
      
    
    AI助手

以上代码可以封装成如下函数:

复制代码
    links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
    def get_links(links_url):
    respose = requests.get(links_url)
    soup = BeautifulSoup(respose.text, "html.parser")
    links_p = soup.find_all('p', class_='content__list--item--title twoline')
    links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
    for lin in links:
        print(lin)
    return links
    get_links(links_url)        
    
    
      
      
      
      
      
      
      
      
      
      
    
    AI助手

5.同理对每个租房链接进行提取信息

复制代码
    house_url = 'https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html'
    respose = requests.get(house_url)
    soup = BeautifulSoup(respose.text, "html.parser")
    
    
      
      
      
    
    AI助手

注意到这两行代码与已有的封装好的函数内部的逻辑完全一致的情况下,这提示我们应当对这段重复使用的逻辑进行优化处理,并将其封装为一个独立的函数模块。

复制代码
    # 获取页面中的内容
    def get_page(url):
    respose = requests.get(url)
    soup = BeautifulSoup(respose.text, "html.parser")
    return soup
    
    # links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
    # 获取每一个租房链接
    def get_links(links_url):
    soup = get_page(links_url)
    links_p = soup.find_all('p', class_='content__list--item--title twoline')
    links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
    for lin in links:
        print(lin)
    return links
    # get_links(links_url)    
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手
在这里插入图片描述
在这里插入图片描述
复制代码
    # 先对一个租房页面提取信息
    house_url = 'https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html'
    soup = get_page(house_url)
    # 这里的div下的content__aside--title属性取到了价格之外的内容,使用切片取出想要的值
    price = soup.find('div', class_='content__aside--title').text[1:10]
    print(price)
    info = soup.find_all('ul', class_='content__aside__list')[0].text
    print(info)
    
    
      
      
      
      
      
      
      
      
    
    AI助手

执行结果:

复制代码
    D:\software\Python37-32\python.exe D:/code/python/python基础/爬取网站链家租房信息.py
    600元/月
      
    租赁方式:合租
    房屋类型:2室2厅1卫 81㎡
    朝向楼层:南/北 高楼层/29层
    
    
      
      
      
      
      
      
    
    AI助手

由于该网站存反爬机制,效果并不理想:

在这里插入图片描述

请阐述具体的步骤如下:搭建数据库架构、数据表结构及相关字段配置。通过Pymysql模块实现与数据库的连接,并即可实现爬取内容的导入至数据库中。

全部评论 (0)

还没有任何评论哟~