爬取链接:https://wf.zu.anjuke.com/?from=navigation

首先我们先打开浏览器,输入网址,利用network进行抓包,找到type ducument响应源码文件

我们发现我们要爬取的数据在html源码中,那么我们就方便了,使用requests和lxml配合使用爬取租房信息,采用面向对象进行开发,方便代码修改,然后我们编写代码!!!

# -- coding: utf-8 --
# @Time : 2020/12/28 15:40
# @FileName: Anjuke.py
# @Software: PyCharmimport requests
from lxml import etree
import csv
from pymongo import MongoClientclass Anjuke(object):def __init__(self):self.url = 'https://wf.zu.anjuke.com/?from=navigation'self.headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/87.0.4280.88 Safari/537.36 ','referer': 'https://weifang.anjuke.com/'}self.client = MongoClient("127.0.0.1", 27017)self.db = self.client['Anjuke']self.col = self.db['House']def get_data(self):proxies_url = 'http://webapi.http.zhimacangku.com/getip?num=20&type=2&pro=&city=0&yys=0&port=1&pack=131877&ts' \'=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1&regions= 'res = requests.get(proxies_url)dict_data = json.loads(res.content)for agent in dict_data["data"]:ip = agent['ip']port = agent['port']# 代理服务器proxyHost = ipproxyPort = portproxyMeta = "http://%(host)s:%(port)s" % {"host": proxyHost,"port": proxyPort,}self.proxies = {"http": proxyMeta}response = requests.get(url=self.url, proxies=self.proxies)return responsedef parse_data(self, response):html = etree.HTML(response.content)node_list = html.xpath('//div[@class="zu-itemmod"]')data_list = list()for node in node_list:temp = {}temp["标题"] = node.xpath("./div[1]/h3/a/b/text()")[0]temp["链接"] = node.xpath("./div[1]/h3/a/@href")[0]temp["价格"] = node.xpath("./div[2]/p/strong/b/text()")[0] + '元'temp["大小"] = node.xpath("./div[1]/p[1]/b[3]/text()")[0] + '平米'shi = node.xpath("./div[1]/p[1]/b[1]/text()")[0]ting = node.xpath("./div[1]/p[1]/b[2]/text()")[0]temp["户型"] = shi + '室' + ting + '厅'temp["姓名"] = node.xpath("./div[1]/p[1]/text()[6]")[0].strip()temp["小区"] = node.xpath("./div[1]/address/a/text()")[0]temp["地址"] = node.xpath("./div[1]/address/text()")[1].strip()temp["整租"] = node.xpath("./div[1]/p[2]/span[1]/text()")[0]temp["方向"] = node.xpath("./div[1]/p[2]/span[2]/text()")[0]detail_link = temp["链接"]self.url = detail_linkprint(self.url)response = requests.get(url=self.url, headers=self.headers)html = etree.HTML(response.content)try:temp["要求"] = html.xpath('/html/body/div[3]/div[2]/div[1]/ul[1]/li[1]/span[2]/text()')[0]except:temp["要求"] = "空"try:temp["描述"] = html.xpath('/html/body/div[3]/div[2]/div[1]/div[6]/b/text()')[0]except:temp["描述"] = "空"try:temp["图片"] = html.xpath('//*[@id="room_pic_wrap"]/div/img/@data-src')[0]except:temp["图片"] = "空"try:temp["日期"] = html.xpath('/html/body/div[3]/div[2]/div[1]/div[2]/div/b/text()')[0]except:temp["日期"] = "空"print(temp)data_list.append(temp)return data_listdef save_data(self, data_list):for data in data_list:csv_writer.writerow([data["标题"], data["链接"], data["价格"], data["大小"], data["户型"], data["姓名"], data["小区"], data["地址"],data["整租"], data["方向"], data["要求"], data["描述"], data["图片"], data["日期"]])self.col.insert_one(data)self.client.close()def run(self):while True:response = self.get_data()data_list = self.parse_data(response)self.save_data(data_list)html = etree.HTML(response.content)try:next_url = html.xpath('//*[contains(text(),"下一页")]/@href')[0]print(next_url)self.url = next_urlexcept:breakif __name__ == '__main__':head = ["标题", "链接", "价格", "大小", "户型", "姓名", "小区", "地址", "整租", "方向", "要求", "描述", "图片", "日期"]with open('安居客.csv', 'w', newline='', encoding="gb18030") as f:csv_writer = csv.writer(f)csv_writer.writerow(head)anjuke = Anjuke()anjuke.run()

将数据存储到csv中,并存储到mongodb数据库,并且实现了翻页功能,其中还添加了代理,因为在打开详情页时访问频繁被屏蔽403,利用代理ip进行爬取!


我爬取的是潍坊,如果想爬其他的地方,wf换成你想爬的城市的缩写就行

希望大家多多给我点赞呀!

爬取安居客租房详情+翻页相关推荐

  1. 爬取安居客租房信息,主要是获取电话号码

    爬取安居客租房信息,主要是获取电话号码 想要得到个人房源的电话只能在app上获取,而且获取的是虚拟号码,没什么作用.所以我们这次获取的是经纪人房源的电话号码,随便打开一个网页,可以看到. 他的电话号码 ...

  2. python爬虫爬取安居客并进行简单数据分析

    此篇博客为普通方式爬取安居客租房数据一共提取出1200条,但是在进行大规模的数据爬取时,不建议使用这种方式,速度太慢是最大的诟病,在进行大规模爬取时,使用分布式爬虫是第一选择 爬取过程 一.指定爬取数 ...

  3. python爬取安居客网站上北京二手房数据

    目标:爬取安居客网站上前10页北京二手房的数据,包括二手房源的名称.价格.几室几厅.大小.建造年份.联系人.地址.标签等. 网址为:https://beijing.anjuke.com/sale/ B ...

  4. Python开发爬虫之BeautifulSoup解析网页篇:爬取安居客网站上北京二手房数据

    目标:爬取安居客网站上前10页北京二手房的数据,包括二手房源的名称.价格.几室几厅.大小.建造年份.联系人.地址.标签等. 网址为:https://beijing.anjuke.com/sale/ B ...

  5. 爬虫爬取安居客二手房和新房信息,你是买新房还是二手的呢?

    本文主要讲解爬取安居客买房类别中的二手房和新房,将提取的信息存储在记事本中,也可以转存CSV格式或者MongoDB中. 网站HTML信息提取比较简单,没有什么特别的地方,作为爬虫入门可以让初学者快速了 ...

  6. python爬虫爬取安居客房源信息

    爬取安居客房源信息 Xpath插件的安装 爬取重庆花溪附近的房源信息(进入正题啦~) 梳理下逻辑 爬取数据的通用流程 代码 代码的问题 & 运行时可能出现的问题 结果 数据处理部分(写给我自己 ...

  7. Python爬取安居客新房信息

    由于是刚开始学习Python爬虫,做个简单的爬虫,提供一个学习思路. 由于水平有限,正则表达式写的实在是抠脚,就直接上BeautifulSoup了. BeautifulSoup的学习参考http:// ...

  8. python爬取房源数据_python爬取安居客二手房网站数据(实例讲解)

    是小打小闹 哈哈,现在开始正式进行爬虫书写首先,需要分析一下要爬取的网站的结构:作为一名河南的学生,那就看看郑州的二手房信息吧! 在上面这个页面中,我们可以看到一条条的房源信息,从中我们发现了什么,发 ...

  9. 爬虫项目--爬取安居客二手房信息

    爬虫实战(爬取安居客二手房信息-成都天府新区) 环境:python3.6 pycharm bs4库 解析方式:bs4 需求:爬取二手房信息字段(titile,house_type,build_time ...

最新文章

  1. Firefox 突然拉黑中国用户
  2. 机器学习--线性回归、逻辑回归
  3. (WebKit) ViewPort + Backing Store + Page Content
  4. django批量修改table_Django 数据库表多对多的创建和增删改查
  5. maven添加sqlserver的jdbc驱动包
  6. [itext] java生成pdf
  7. mysql noinstall 5.5_mysqlnoinstall 手动安装
  8. 深度学习TF—5.tf.kears高层API
  9. Oracle脚本(三)
  10. 卡巴世界,卡巴斯基,卡巴斯基key,卡巴斯基激活码,软件下载,每天更新
  11. linux多队列网卡中断绑定,网卡中断及多队列 - osc_mzx9t9jk的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. QC七大手法之直方图详解
  13. 聚币网API使用教程 demo
  14. php pecl libevent,ubuntu – 安装PHP libevent PECL包的问题
  15. WebSpider和一些杂七杂八
  16. Photo Album: 2008年5月-三亚爱琴海岸康年度假村-day4
  17. Axure中继器组件的使用
  18. 微信小程序动态绑定unit-id
  19. ssh免密码登录快速配置方法
  20. 在Vivado下如何判断芯片是多die芯片-关于SSI的多方面解答

热门文章

  1. 如何长高青春期后 - 两个简单而成功的方法
  2. FPGA数字信号处理(25)数字相关器设计(经典结构)
  3. JAVA水晶报表从环境搭建到创建动态水晶报表
  4. Hibernate自动建表
  5. 谈谈单元测试:为什么要进行单元测试?
  6. 业务员与客户沟通的礼仪
  7. 【Python量化策略】SMA双均线策略
  8. 【开机启动】win11开机启动软件,win11开机启动bat脚本(开机启动vbs文件)
  9. 直流无刷电机驱动芯片DRV8306使用
  10. 年薪40W毕业生大厂面试题合集,学完之后你不会拿不到offer