使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取。

import requests

from bs4 import BeautifulSoup

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2669.400 QQBrowser/9.6.10990.400',

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

'Accept-Encoding':'gzip, deflate, sdch',

'Accept-Language':'zh-CN,zh;q=0.8',

'Connection':'keep-alive',

'Referer':'https://www.baidu.com/link?url=znRkKNPxTXXmN7m4lWy28vWXLWyx_hTEW4bLC5Pi8YR_s5wAdQk4FExi8Fz6HxHc&wd=&eqid=f2ad9a7e00007f1200000004594a3116'

}

urls = [] # 定义空列表,用于创建所有的爬虫链接

#基于for循环,构造完整的爬虫链接

for i in ['zufang']:

url = 'http://sh.lianjia.com/%s/' %i

for j in list(range(1,2075)):

urls.append('http://sh.lianjia.com/%s/d%si1s5' %(i,j)) #拼接所有需要爬虫的链接

#创建csv文件,用于后面的保存数据

file = open('D:/jupyter/lianjia.csv','w')

def readpage(url):

try:

res = requests.get(url)

except ConnectionError as e:

return None

return res

def viewsubway(res2):

try:

view = res2.find_all('span',{'class':'fang-subway-ex'})[0].find_all('span')[0].text

except IndexError as e:

return None

return view

for url in urls: #基于for循环,抓取出所有满足条件的标签和属性列表,存放在find_all中

res = readpage(url)

res = res.text.encode(res.encoding).decode('utf-8')

soup = BeautifulSoup(res,'html.parser')

find_all = soup.find_all(name = 'div',attrs = {'class':'info-panel'})

for i in list(range(len(find_all))): #基于for循环,抓取出所需的各个字段信息

title = find_all[i].find('a')['title'] #每套租房的标语

res2 = find_all[i]

name = res2.find_all('div',{'class':'where'})[0].find_all('span')[0].text #租房所在的小区名称

room_type = res2.find_all('div',{'class':'where'})[0].find_all('span')[1].text #租房的户型

size = res2.find_all('div',{'class':'where'})[0].find_all('span')[2].text[:-3]#租房的面积

#采用列表解析式,删除字符串的首位空格

info = [i.strip() for i in res2.find_all('div',{'class':'con'})[0].text.split('\n')]

region = info[1] #租房所在的区

area = info[2] #租房所在的街道地域

louceng = info[4][:2] #租房所在的楼层

chaoxiang = info[7][3:] #租房的朝向

#每套租房的租金

price = res2.find_all('div',{'class':'price'})[0].find_all('span')[0].text

#地铁站及地铁

view = viewsubway(res2)

if view != None:

subway = view[2:5] #租房附近的地铁线

distance = view[-4:-1] #租房到地铁站的距离

else:

subway = '\0'

distance = '\0'

#将上面的各字段信息值写入并保存到csv文件中

file.write(','.join((name.encode('gbk','ignore'),room_type.encode('gbk','ignore'),size.encode('gbk','ignore'),region.encode('gbk','ignore'),area.encode('gbk','ignore'),louceng.encode('gbk','ignore'),chaoxiang.encode('gbk','ignore'),price.encode('gbk','ignore'),subway.encode('gbk','ignore'),distance.encode('gbk','ignore'),title.encode('gbk','ignore'))) + '\n')

关闭文件(否则数据不会写入到csv文件中)

file.close()```

python爬取链家租房信息_Python爬取链家网上海市租房信息相关推荐

  1. python爬房源信息_Python爬链家网租房信息

    爬去链家网的租房信息然后存储到数据库中. #-*- coding:utf-8 -*- import requests import re import random import MySQLdb fr ...

  2. python爬取数据分析淘宝商品_python爬取并分析淘宝商品信息

    python爬取并分析淘宝商品信息 Tip:本文仅供学习与交流,切勿用于非法用途!!! 背景介绍 有个同学问我:"XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计".于是 ...

  3. python爬取淘宝商品信息_python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

  4. python爬取商品信息_python爬取商品信息

    原博文 2014-11-27 02:09 − 老严要爬某网购网站的商品信息,正好我最近在学python,就一起写了一个简单的爬虫程序. 需求:某网的商品信息,包括商品名,市场价和售价 工具:pytho ...

  5. python爬取旅游信息_Python 爬取 13 个旅游城市,告诉你五一大家最爱去哪玩?

    五一假期已经结束,小伙伴是不是都还没有玩过瘾?但是没办法,还有很多bug等着我们去写,同样还有需要money需要我们去赚.为了生活总的拼搏. 今年五一放了四天假,很多人不再只是选择周边游,因为时间充裕 ...

  6. python爬取旅游信息_python爬取全国13个城市旅游数据,告诉你那里最受欢迎

    抓取数据 通过请求https://piao.qunar.com/ticket/list.htm?keyword=北京,获取北京地区热门景区信息,再通过BeautifulSoup去分析提取出我们需要的信 ...

  7. python可以爬取的内容有什么_Python爬取视频(其实是一篇福利)过程解析 Python爬虫可以爬取什么...

    如何用python爬取视频网站的数据 如何用python爬取js渲染加载的视频文件不是每个人都有资格说喜欢,也不是每个人都能选择伴你一生! 有哪位大神指导下,有些视频网站上的视频文件是通过 js 加载 ...

  8. python爬取b站弹幕分析_python爬取B站视频弹幕分析并制作词云

    目录1.分析网页 2.爬虫+jieba分词+制作词云2.1爬虫 2.2jieba分词 2.3制作词云 3.成品展示 4.完整代码 1.分析网页 视频地址:https://www.bilibili.co ...

  9. python读取文本中的英文歌_Python 实例分析 - 获取MP3歌曲的Tag信息

    下面利用一个python的实例程序,来学习python.这个程序的目的就是分析出所有MP3文件的Tag信息并输出. 其中遇到一个问题,让我深切感受到python中依靠缩进来控制流程的缺点,不多说,看程 ...

最新文章

  1. git 给每个branch设置权限_自定义git命令阅读开源项目
  2. 启动weblogic的错误:Could not obtain an exclusive lock to the embedded LDAP data files directory...
  3. idea启动前端vue项目(各种坑)
  4. VS2005 there is no source code available for the current location 解决方案
  5. 面试题12:打印1到最大的n位数
  6. python_day12_html
  7. 最强!超越卷积、自注意力机制:强大的神经网络新算子involution
  8. Java七大设计模式原则(附相关电子图书下载)
  9. Qt UDP Socket丢包问题(实现百兆级速率无丢包)
  10. Unity 3D 学习(一)——Roll a ball
  11. android xml 设置半透明
  12. 计算机科学与技术_基于Java web的计算机图书借阅管理系统的设计与实现.docx
  13. CRA对于IE9的兼容性设置
  14. 数据结构 第2版 第二版 陈越_高中数学选学---人教A版选修2-1第二章第二节椭圆...
  15. 工业企业产值产量电子台账操作指南(第一版)
  16. win10和ubuntu16双系统安装
  17. 客户之前使用的其他财务软件,现在需要把其他软件的财务凭证导入到用友T3软件中使用,如何能快速实现。
  18. 开源项目管理软件排名_2015年排名前5位的开源项目管理工具
  19. 广西大学计算机考研录取名单,广西大学2020考研推免生录取名单
  20. CAN通信标准帧和扩展帧

热门文章

  1. AutoGluon处理多模态数据方法及案例——Multimodal Data Tables: Tabular, Text, and Image
  2. N01web网页设计实例作大作业(div+css) ——中国茶文化(6页) 茶文化网页制作作业_中国化(网页设计...
  3. 贴片电阻有哪几类封装尺寸?
  4. Cortex-M3技术参考手册 2022年3月1日
  5. 微博机型Android怎么去掉,如何设置微博来源中显示出的手机型号 怎么去掉微博来源中的android字样...
  6. mysql抢红包功能_Laravel框架实现抢红包功能示例
  7. labelimg标注yolo格式Bug
  8. python协程详解
  9. 盗取手机验证码诈骗的克星来了:号码认证服务为你保驾护航
  10. matlab 写netcdf,写入 netCDF 属性