使用Scrapy框架爬取链家数据

仅供个人学习,如有侵权联系删除
spider文件:lianjia.py

# -*- coding: utf-8 -*-
import scrapy
from pachong6.items import Pachong6Item

class LianjiaSpider(scrapy.Spider):
    name = 'lianjia'
    allowed_domains = ['m.lianjia.com']
    start_urls = ['https://m.lianjia.com/bj/jingjiren/ao22pg' + str(x) for x in range(1,4)]

    def parse(self, response):
        agentlist = response.xpath('//*[@class="jingjiren-list__agent-item"]')
        for agent in agentlist:
            item = Pachong6Item()
            item['name'] = agent.xpath('div/div/div[2]/div[1]/span/text()').extract_first()
            item['region'] = agent.xpath('div/div/div[2]/p/text()').extract_first()
            item['tran_num'] = agent.xpath('div/div/div[2]/div[3]/div[1]/span/text()').extract_first()
            # print("经纪人姓名:", item['name'])
            # print("经纪人所负责区域:", item['region'])
            # print("经纪人历史成交量为:", item['tran_num'])
            yield item

数据存入mongodb:

# -*- coding: utf-8 -*-

from pymongo import MongoClient

class Pachong6Pipeline(object):

    # 在open_spider方法中连接MongoDB,创建数据库和集合,也可以在__init__初始化方法中处理这些操作
    def open_spider(self, spider):
        dataIp = '127.0.0.1'
        dataPort = 27017
        dbName = 'lianjia_db'
        sheetName = 'collections_db'
        # 获取数据库连接
        self.client = MongoClient(dataIp, dataPort)
        # 指定数据库
        self.db = self.client[dbName]
        # 指定集合
        self.collection = self.db[sheetName]

    def close_spider(self, spider):
        self.client.close()

    def process_item(self, item, spider):
        # 把Item转化成字典方式,然后添加数据
        #print("item数据:", item)
        self.collection.insert_one(dict(item))
        # return item

结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值