爬取链家二手房数据

简介: 爬取链家二手房数据
#coding:utf8
import requests
import random
from lxml import etree
import time
#提供ua信息的的包
from fake_useragent import UserAgent
class LinajiaSpider(object):
    def __init__(self):
        self.url='https://bj.lianjia.com/ershoufang/pg{}/'
        #计数,请求一个页面的次数,初始值为1
        self.blog=1
    # 随机取一个UA
    def get_header(self):
        #实例化ua对象
        ua=UserAgent()
        headers={
   'User-Agent':ua.random}
        return headers
    #发送请求
    def get_html(self,url):  
       #在超时间内,对于失败页面尝试请求三次
        if self.blog<=3:
            try:
                res=requests.get(url=url,headers=self.get_header(),timeout=3)
                html=res.text
                return html
            except Exception as e:
                print(e)
                self.blog+=1
                self.get_html(url)
    # 解析提取数据
    def parse_html(self,url):
        html=self.get_html(url)
        if html:
            p=etree.HTML(html)
            #基准xpath表达式-30个房源节点对象列表
            h_list=p.xpath('//ul[@class="sellListContent"]/li[@class="clear LOGVIEWDATA LOGCLICKDATA"]')
            #所有列表节点对象
            for h in h_list:
                item={
   }
                #名称
                name_list=h.xpath('.//a[@data-el="region"]/text()')
                #判断列表是否为空
                item['name']=name_list[0] if name_list else None
    #户型+面积+方位+是否精装..['2室1厅 | 88.62平米 | 北 南 | 简装 | 顶层(共6层) | 2004年建 | 板楼']
                info_list=h.xpath('.//div[@class="houseInfo"]/text()')
                #判断列表是否为空
                if info_list:
                    L=info_list[0].split('|')
          # ['2室1厅 ', ' 88.62平米 ', ' 北 南 ', ' 简装 ', ' 顶层(共6层) ', ' 2004年建 ', ' 板楼']
                    if len(L) >= 5:
                        item['model']=L[0].strip()
                        item['area']=L[1].strip()
                        item['direction']=L[2].strip()
                        item['perfect']=L[3].strip()
                        item['floor']=L[4].strip()
                #区域+总价+单价
                address_list=h.xpath('.//div[@class="positionInfo"]/a/text()')
                item['address']=address_list[0].strip() if address_list else None
                total_list=h.xpath('.//div[@class="totalPrice"]/span/text()')
                item['total_list']=total_list[0].strip() if total_list else  None
                price_list=h.xpath('.//div[@class="unitPrice"]/span/text()')
                item['price_list']=price_list[0].strip() if price_list else None
                print(item)
     # 入口函数
    def run(self):
        try:
            for i in range(1,101):
                url=self.url.format(i)
                self.parse_html(url)
                time.sleep(random.randint(1,3))
                #每次抓取一页要初始化一次self.blog
                self.blog=1
        except Exception as e:
            print('发生错误',e)
if __name__ == '__main__':
    spider=LinajiaSpider()
    spider.run()
目录
相关文章
|
3天前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
83 2
Python爬虫案例:抓取猫眼电影排行榜
|
数据采集 存储 Web App开发
Python爬虫系列8-抓取快乐8、刮刮乐、双色球等中奖数据分析规律
人在绝大多数情况下,只要稍微有那么一点的退路,有那么一点余地,就可以成为逃避的借口和理由。努力装装样子,然后给自己一个台阶下,安慰自己说,“你看我已经很努力了,还是不行,那就算了吧”。 老话说得好:只有主动追求的东西才能到手;只要你想做,全世界都会帮你;只要你不想做,一只蚊子都能拦住你。虽说未来可期,但如果你连相信自己的勇气都没有,还有什么资格得到更好的呢。对吧!
1218 0
Python爬虫系列8-抓取快乐8、刮刮乐、双色球等中奖数据分析规律
|
8月前
|
数据采集 数据可视化 数据挖掘
爬虫技术对携程网旅游景点和酒店信息的数据挖掘和分析应用
爬虫技术是一种通过网络爬取目标网站的数据并进行分析的技术,它可以用于各种领域,如电子商务、社交媒体、新闻、教育等。本文将介绍如何使用爬虫技术对携程网旅游景点和酒店信息进行数据挖掘和分析,以及如何利用Selenium库和代理IP技术实现爬虫程序
319 0
|
3天前
爬取猫眼电影
爬取猫眼电影
35 0
|
数据采集 供应链 Python
python爬虫带你了解油价新走势
python爬虫带你了解油价新走势
|
数据采集 编解码 Python
Python爬虫实战(4) | 爬取历年中国电影票房排行榜
看了看后台,发现之前写的几篇有关爬虫实战的文章特别受欢迎,阅读量都是好几千那种 然后回头发现自己好久没写爬虫了,刚好写了个小小的爬虫 demo ,今天分享给大家
|
存储 数据采集 关系型数据库
python爬虫爬取房源信息
写这篇博客的原因是在我爬取房产这类数据信息的时候,发现csdn中好多博主写的关于此类的文章代码已经不适用,因为好多房产网站代码已经更改,使用老的代码明显爬取不到所需要的房产信息。......
197 1
python爬虫爬取房源信息
Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测
Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测
Crawl:利用bs4和requests爬取了国内顶级某房源平台(2020年7月2日上海二手房)将近30*100多条数据并进行房价分析以及预测
好客租房176-获取房源数据优化
好客租房176-获取房源数据优化
105 0
好客租房176-获取房源数据优化
|
数据采集
百度贴吧数据获取
获取贴吧数据
478 0
百度贴吧数据获取