最新基于大数据的房价分析--1,2024年最新大数据开发多态实现原理

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

#按顺序进行爬取

requests = []

if self.cities_Col.count({“status”:False}) <= 0:

print(“全部设为false”)

self.cities_Col.update({},{“$set”:{“status”:False}},True,True,True)

content = self.cities_Col.find_one({“status”:False})

self.cities_Col.update({“_id”:content[“_id”]},{“$set”:{“status”:True}})

self.client.close()

self.cityhost = content[‘cityhost’]

self.fillUrl = “http://%s.58.com/ershoufang/”%self.cityhost

self.city = content[“_id”]

requests.append(scrapy.Request(self.fillUrl))

return requests

def start_requests(self):

if self.settings[‘CITY’] and self.settings[‘CITY’] != ‘’:

return self.get_specify_request()

else:

return self.get_sequence_request()

def parseUrls(self,html):

links = html.xpath(“.//a/@href”)

urls = []

for link in links:

if StringUtil.filtString(self.fillUrl+“pn\d+?/”,link):

urls.append(link)

return urls

def parseItems(self,html,url):

houselist = html.xpath(“.//ul[@class=‘house-list-wrap’]//div[@class=‘list-info’]”)

items = []

for houseinfo in houselist:

detailurl = houseinfo.xpath(“.//h2[1]/a/@href”)

title = “”.join(houseinfo.xpath(“.//h2[1]/a/text()”))

roomNum = “”.join(houseinfo.xpath(“.//p[1]/span[1]/text()”)[0].split())

size = “”.join(houseinfo.xpath(“.//p[1]/span[2]/text()”))

orient = “”.join(houseinfo.xpath(“.//p[1]/span[3]/text()”))

floor = “”.join(houseinfo.xpath(“.//p[1]/span[4]/text()”))

address = “”.join((“”.join(houseinfo.xpath(“.//p[2]/span[1]//a/text()”))).split())

sumprice = “”.join(houseinfo.xpath(“./following-sibling::div[1]//p[@class=‘sum’]/b/text()”))

unitprice = “”.join(houseinfo.xpath(“./following-sibling::div[@class=‘price’]//p[@class=‘unit’]/text()”))

items.append(HouseItem(

_id = “”.join(detailurl),

title = title,

roomNum = roomNum,

size = NumberUtil.fromString(size),

orient = orient,

floor = floor,

address = address,

sumPrice = NumberUtil.fromString(sumprice),

unitPrice = NumberUtil.fromString(unitprice),

city=self.city,

fromUrl = url,

nowTime = time.time(),

status = “SUBSPENDING”)

)

return items

def parse(self,response):

if(response.body ==‘None’):

return

doc = html.fromstring(response.body.decode(“utf-8”))

urls = self.parseUrls(doc)

items = self.parseItems(doc,response.url)

for url in urls:

yield scrapy.Request(url,callback=self.parse)

for item in items:

yield item

2.items

class HouseItem(scrapy.Item):

define the fields for your item here like:

name = scrapy.Field()

title = scrapy.Field()

roomNum = scrapy.Field()

size = scrapy.Field()

orient = scrapy.Field()

floor = scrapy.Field()

address = scrapy.Field()

sumPrice = scrapy.Field()

unitPrice = scrapy.Field()

_id = scrapy.Field()

imageurl = scrapy.Field()

fromUrl = scrapy.Field()

city = scrapy.Field()

nowTime = scrapy.Field()

status = scrapy.Field()

3.pipelines

#coding: utf-8

import codecs

import json

import pymongo

from scrapy.utils.project import get_project_settings

Define your item pipelines here

Don’t forget to add your pipeline to the ITEM_PIPELINES setting

See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html

from ershoufang.items import ProxyItem

class ErshoufangPipeline(object):

def init(self):

self.settings = get_project_settings()

self.client = pymongo.MongoClient(

host=self.settings[‘MONGO_IP’],

port=self.settings[‘MONGO_PORT’])

self.db = self.client[self.settings[‘MONGO_DB’]]

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值