欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-26 08:06:47
...

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

'''
爬取链家二手房信息
类的使用
'''
# 导入第三方库
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文件中,提取结果如下:
python爬虫之链家郑州二手房爬取

相关标签: python爬虫