python爬虫之链家郑州二手房爬取

今天爬取链家郑州二手房的信息,先写简单一点的,通过链家的过滤标签,共筛选出5家符合条件的房源,只爬取了列表页的内容,后面在爬取稍微复杂一点的页面。
首先分析url及返回的html文本,发现所要的信息就在当前url返回的html文本当中,这就非常简单了。
在这里插入图片描述
返回的html文本
在这里插入图片描述
既然这样,那提取内容就十分的简单了。
这篇比较简单,就不做过多的阐述了,完整代码如下:

'''
爬取链家二手房信息
类的使用
'''
# 导入第三方库
import requests
import time
import csv
from lxml import etree
from fake_useragent import UserAgent

# 随机请求头
ua = UserAgent()


# 定义链家的类
class LianJia():
    # 初始化对象
    def __init__(self):
        self.start_url = "https://zz.lianjia.com/ershoufang/erqi/tt9l2a2p2/"
        self.headers = {"User-Agent": ua.random}

    # 定义得到html文本的方法
    def get_html(self, url):
        time.sleep(1)
        html = requests.get(url, headers=self.headers).content.decode()
        return html

    # 得到解析html文本的方法
    def paser_html(self, html):
        e = etree.HTML(html)
        # 提取房屋名称
        room_title = e.xpath('//div[@class="title"]/a/text()')
        # 提取房屋的详细信息
        house_info = e.xpath('//div[@class="address"]/div[@class="houseInfo"]/text()')
        # 提取房屋的价格
        price_info = e.xpath('//div[@class="totalPrice"]/span/text()')
        price_info = [i + "万" for i in price_info]
        # 提取房屋的单价
        unit_price = e.xpath('//div[@class="unitPrice"]/span/text()')
        # 保存提取的信息到csv
        with open("lianjia.csv", 'w', newline='') as f:
            cs_writer = csv.writer(f)
            cs_writer.writerow(unit_price)
            cs_writer.writerow(price_info)
            cs_writer.writerow(room_title)
            cs_writer.writerow(house_info)



    # 定义运行函数,实现主要逻辑
    def run(self):
        url = self.start_url
        html = self.get_html(url)
        self.paser_html(html)


# 程序运行接口
if __name__ == '__main__':
    LianJia_Spider = LianJia()
    LianJia_Spider.run()

# https://blog.csdn.net/api/WritingRank/totalList?username=qq_46292926&page=1&size=10

最后写入了csv文件中,提取结果如下:
在这里插入图片描述

发布了44 篇原创文章 · 获赞 16 · 访问量 2385

猜你喜欢

转载自blog.csdn.net/qq_46292926/article/details/105051053