items文件定义爬取数据:

apartment = scrapy.Field()
total_price = scrapy.Field()
agent = scrapy.Field()
image_urls = scrapy.Field()
images = scrapy.Field()

spider文件:

# -*- coding: utf-8 -*-
import scrapy
from pachong2.items import Pachong2Itemclass WoaiwojiaSpider(scrapy.Spider):name = 'woaiwojia'allowed_domains = ['bj.5i5j.com']start_urls = ['http://bj.5i5j.com/']# 重写def start_requests(self):urls = ['https://bj.5i5j.com/ershoufang/n' + str(x) + '/' for x in range(1, 5)]for url in urls:yield scrapy.Request(url=url, callback=self.parsex)# 房源列表页解析def parsex(self, response):print("response状态码:", response.status)print("部分网页代码:", response.body)house_list = response.xpath('/html/body/div[6]/div[1]/div[2]/ul/li')print("房源列表:",house_list)for house in house_list:item = Pachong2Item()item['apartment'] = house.xpath('div[2]/h3/a/text()').extract_first()print("标题:", item['apartment'])item['total_price'] = house.xpath('div[2]/div[1]/div/p[1]/strong/text()').extract_first()print("总价:", item['total_price'])# 解析并构造详情页URLdetail_url = response.urljoin(house.xpath('div[2]/h3/a/@href').extract_first())# 继续请求详情页URL,用用meta传递已经爬取到的部分数据# 使用callback指定回调函数yield scrapy.Request(detail_url, meta={'item': item}, callback=self.parse_detail)# next_url = response.xpath('//div[@class="pageSty rf"]/a[1]/@href').extract_first()# if next_url and page_num < 3:#     next_url = response.urljoin(next_url)#     yield scrapy.Request(next_url, callback=self.parse)# 房源详情页面解析def parse_detail(self, response):# 接受传递过来的数据print("detail_response:", response.xpath)item = response.meta['item']# 继续向Item添加经纪人信息item['agent'] = response.xpath('/html/body/div[5]/div[2]/div[2]/div[3]/ul/li[2]/h3/a/text()').extract_first()item['image_urls'] = response.xpath('/html/body/div[5]/div[2]/div[1]/div[1]/div/a[1]/img/@src').extract()print('agent:', item['agent'])yield item

settings文件:

BOT_NAME = 'pachong2'SPIDER_MODULES = ['pachong2.spiders']
NEWSPIDER_MODULE = 'pachong2.spiders'
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 3
COOKIES_ENABLED = False
# 图片下载存储
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline':1}
IMAGES_STORE='E:\Projects\PycharmProjects\pachong2\images'
# 设置cookie,通过浏览器开发工具获取
DEFAULT_REQUEST_HEADERS = {'Cookie':'......'}
# 自动限速
AUTOTHROTTLE_ENABLED = True
HTTPERROR_ALLOWED_CODES = [403]
# 中间件
DOWNLOADER_MIDDLEWARES = {# 'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware':None,# 'pachong2.middlewares.ProxyMiddleWare':125,# 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware':None'pachong2.middlewares.UserAgentMiddleware': 543,'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None, # 关闭默认的USER-AGENT中间建
}

pipelines文件:

class Pachong2Pipeline(object):def process_item(self, item, spider):return item

中间件设置自己的user-agent信息:

class UserAgentMiddleware(object):def process_request(self, request, spider):USER_AGENT = ''request.headers.setdefault('User-Agent', USER_AGENT)

结果:


仅供个人学习,如有侵权联系删除

爬取我爱我家网站二手房信息相关推荐

  1. 利用python爬取我爱我家租赁房源信息

    主要思路: 1.通过get方法向服务器提交head文件和cookie信息(通过在chrome网页上面登录之后获取,避免了通过账号密码模拟登陆的繁琐过程),实现模拟登陆的效果 2.访问网页,通过万能的正 ...

  2. Python爬虫:爬取我爱我家网二手房源信息

    # xpath爬取 # 爬取小区名称.户型.地区.售价.总价 1.导入模块 import requests import csv from lxml import etree 2.创建类 # 创建我爱 ...

  3. xpath爬取我爱我家杭州地区租房网

    xpath爬取我爱我家杭州地区租房网 分析房源信息列表页 网页的请求属于get,然后找我们需要的信息所在的模块 可以看见我们需要的网页数据在doc模块中,找到这个模块,分析他的请求,在requests ...

  4. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  5. python 爬取链家数据_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

  6. 五十七、爬取链家网北京二手房信息,并进行线性回归建模

    @Author : By Runsen @Date:2020/5/31 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严 ...

  7. 爬取我爱我家租房信息时 问题总结(付代码)

    最近一直在联系爬虫,所以对一些网站抓取信息是遇到了问题,这里总结一下我爱我家的问题 在以往的练习时,xpath是我最常用的方法,这次也不例外 好的,我们开始爬取数据 第一步 ,接口查找 https:/ ...

  8. Scrapy框架爬取我爱我家二手房信息存储CSV、mysql(IP代理和User-Agent用户代理)

    有一段时间没出来活动了闲来无事弄个玩玩O(∩_∩)O哈哈~ 想必学过Scrapy框架的人都知道如何创建Scrapy和运行,那么我这里呢现将我创的框架展示一下 scrapy startproject p ...

  9. scrapy crawl爬取我爱我家二手房的数据

    startur:lhttps://cd.5i5j.com/ershoufang/ 文章末尾有该项目的链接 1.创建项目 scrapy startproject woaiwojia cd woaiwoj ...

最新文章

  1. thymeleaf 的常见属性
  2. python表白程序-python如何写出表白程序
  3. Linux——Linux C语言编程基础知识
  4. 如何在 Apache 中为你的网站设置404页面
  5. oracle同步恢复目录,Oracle创建恢复目录(catalog)
  6. redis快照持久化和aof日志持久化
  7. 深度学习入门笔记(五):神经网络的学习
  8. linux 防火墙配置命令
  9. 安卓http服务器源码,Android搭建HTTP和WebSocket的服务器端
  10. bios刷写工具_蓝天P750/P751编程器刷BIOS
  11. javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
  12. 【数学】线性代数技巧篇
  13. XP计算机屏蔽vac系统,网吧屏蔽VAC一键修复——V1.1by RiCkY
  14. hprose-php教程,Swoole学习笔记(六):Hprose入门
  15. 全面了解三极管——三极管用作开关管2
  16. Tensorflow的ckpt转为npy格式的代码
  17. Maximum upload size exceeded
  18. GitHub 上受欢迎的 Android UI Library 整理(一)
  19. Android studio3.6.3的jdk版本设置在哪里?
  20. 使用Linux训练LoRA模型

热门文章

  1. 【补遗】 Let me sleep(NCD 2019, Gym - 102163B)
  2. 【嗜血GO笔记】GO语言:imported and not used: xxx 报错
  3. 国家商务部点名京品高科,智能售卖系统独角兽成为行业标准
  4. Word2003:制作条形码(转)
  5. 变形金刚真人电影版 预告片
  6. 今日八个火车站覆盖免费wifi
  7. linux dup作用,dup 与 dup2 的作用
  8. 【美化到底】Windows下的Powershell美化
  9. 学会python能干嘛-python能干啥
  10. 基于MCU的二维码生成及在墨水屏上进行二维码显示