房天下

import requests
res = requests.get('http://esf.sz.fang.com/')
#res.text
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,'html.parser')
domain = 'http://esf.sz.fang.com'
for house in soup.select('.houseList dl'):
if len(house.select('.title')) > 0:
#print(house.select('.title'))
#print(house.select('.title')[0].text.strip('\n'))
#title = house.select('.title')[0].text.strip('\n')
link = house.select('.title a')[0]['href']
url = domain + link
#print(title)
print(url)
print("=====================================")
http://esf.sz.fang.com/chushou/3_195350255.htm
=====================================
http://esf.sz.fang.com/chushou/3_195673873.htm
=====================================
http://esf.sz.fang.com/chushou/3_194871298.htm
=====================================
http://esf.sz.fang.com/chushou/3_195440493.htm
=====================================
http://esf.sz.fang.com/chushou/3_194941076.htm
=====================================
http://esf.sz.fang.com/chushou/3_195229169.htm
=====================================
http://esf.sz.fang.com/chushou/3_195408601.htm
=====================================
http://esf.sz.fang.com/chushou/3_195686255.htm
=====================================
http://esf.sz.fang.com/chushou/3_195652264.htm
=====================================
http://esf.sz.fang.com/chushou/3_195602160.htm
=====================================
http://esf.sz.fang.com/chushou/3_195499064.htm
=====================================
http://esf.sz.fang.com/chushou/3_195655132.htm
=====================================
http://esf.sz.fang.com/chushou/3_195018784.htm
=====================================
http://esf.sz.fang.com/chushou/3_193837152.htm
=====================================
http://esf.sz.fang.com/chushou/3_195680364.htm
=====================================
http://esf.sz.fang.com/chushou/3_195585056.htm
=====================================
http://esf.sz.fang.com/chushou/3_195346885.htm
=====================================
http://esf.sz.fang.com/chushou/3_195500516.htm
=====================================
http://esf.sz.fang.com/chushou/3_194325860.htm
=====================================
http://esf.sz.fang.com/chushou/3_195556602.htm
=====================================
http://esf.sz.fang.com/chushou/3_195555259.htm
=====================================
http://esf.sz.fang.com/chushou/3_195692033.htm
=====================================
http://esf.sz.fang.com/chushou/3_195202600.htm
=====================================
http://esf.sz.fang.com/chushou/3_195521932.htm
=====================================
http://esf.sz.fang.com/chushou/3_195392858.htm
=====================================
http://esf.sz.fang.com/chushou/3_194891027.htm
=====================================
http://esf.sz.fang.com/chushou/3_192915787.htm
=====================================
http://esf.sz.fang.com/chushou/3_195538851.htm
=====================================
http://esf.sz.fang.com/chushou/3_195737629.htm
=====================================
http://esf.sz.fang.com/chushou/3_195587205.htm
=====================================

'''

[0] 出错

IndexError: list index out of range

第1种可能情况

list[index]index超出范围

第2种可能情况

list是一个空的 没有一个元素

进行list[0]就会出现该错误

'''

import requests
res = requests.get('http://esf.sz.fang.com/chushou/10_195724712.htm')
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,'html.parser')
soup.select('.title h1')[0].text.strip()
'碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'
info = {}
info['标题'] = soup.select('.title h1')[0].text.strip()
info
{'标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'}
soup.select('.zongjia1 .red20b')[0].text
'398'
info['总价'] = soup.select('.zongjia1 .red20b')[0].text
info
{'总价': '398', '标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利'}
for dd in soup.select('dd'):
if ':' in dd.text.strip():
#print(dd.text.strip().split(':'))
key,value = dd.text.strip().split(':')
info[key] = value
info
{'专业度': '2.3',
'二 手 房': '32套',
'使用面积': '216�O',
'厅 结 构': '平层',
'参考月供': '',
'参考首付': '119.4万',
'同比去年': '↓2.1%',
'地上层数': '3层',
'地下室面积': '200平米(全明)',
'好评率': '33%',
'建筑年代': '2016年',
'建筑形式': '独栋',
'建筑面积': '216�O',
'开 发 商': '东莞市黄江碧桂园房地产开发有限公司',
'总价': '398',
'户型': '5室2厅1厨4卫',
'标题': '碧桂园翡翠山坡地别墅 配套设施齐全 环境优美 价格实惠 交通便利',
'满意度': '2.3',
'物 业 费': '暂无资料',
'物业公司': '暂无资料',
'物业类型': '别墅',
'环比上月': '↓1.39%',
'真实度': '2.3',
'租 房': '0套',
'绿 化 率': '0.00%',
'花园面积': '100平米',
'装修程度': '精装修',
'车位数量': '2个',
'车库数量': '1个',
'进门朝向': '南'}
def getHouseDetil(url):
info = {}
import requests
res = requests.get(url)
from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text,'html.parser')
info['标题'] = soup.select('.title h1')[0].text.strip()
info['总价'] = soup.select('.zongjia1 .red20b')[0].text
for dd in soup.select('dd'):
if ':' in dd.text.strip():
#print(dd.text.strip().split(':'))
key,value = dd.text.strip().split(':')
info[key] = value
return info
url = 'http://esf.sz.fang.com/chushou/3_195684731.html'
getHouseDetil(url)
{'专业度': '5',
'二 手 房': '264套',
'产权性质': '商品房',
'住宅类别': '普通住宅',
'使用面积': '76�O',
'参考月供': '',
'参考首付': '114万',
'同比去年': '↑1.11%',
'好评率': '100%',
'年代': '2013年',
'建筑类别': '板楼',
'建筑面积': '89�O',
'开 发 商': '和记黄埔地产(深圳)有限公司',
'总价': '380',
'户型': '3室2厅1厨2卫',
'朝向': '南',
'标题': '刚刚放盘 和黄懿花园顶楼湖景房 带20万装修 诚心出售380万!',
'楼层': '高层(共10层)',
'满意度': '5',
'物 业 费': '3.8元/平米・月',
'物业公司': '暂无资料',
'物业类型': '住宅',
'环比上月': '↑0.01%',
'真实度': '5',
'租 房': '66套',
'结构': '平层',
'绿 化 率': '30.00%',
'装修': '精装修'}

综合案例

import requests
from bs4 import BeautifulSoup
res = requests.get('http://esf.sz.fang.com/')
soup = BeautifulSoup(res.text,'html.parser')
domain = 'http://esf.sz.fang.com'
houslist = []
for house in soup.select('.houseList dl'):
if len(house.select('.title')) > 0:
link = house.select('.title a')[0]['href']
url = domain + link
houslist.append(getHouseDetil(url))
len(houslist)
30
houslist[21]
{'专业度': '5.0',
'二 手 房': '993套',
'产权性质': '商品房',
'住宅类别': '普通住宅',
'使用面积': '126�O',
'参考月供': '',
'参考首付': '47.4万',
'同比去年': '暂无资料',
'好评率': '100%',
'年代': '2016年',
'建筑类别': '板楼',
'建筑面积': '128�O',
'开 发 商': '20160527162320,2016051',
'总价': '158',
'户型': '4室2厅1厨2卫',
'朝向': '南北',
'标题': '碧桂园公园上城、全智能社区、精装四房、南站万达、带',
'满意度': '5.0',
'物 业 费': '2.6元/�O・月',
'物业公司': '广东碧桂园物业服务有限公司',
'物业类型': '住宅',
'环比上月': '↑0.14%',
'真实度': '5.0',
'租 房': '0套',
'结构': '平层',
'绿 化 率': '30.00%',
'装修': '精装修'}
import pandas
df = pandas.DataFrame(houslist)
#df
df.to_excel('/mnt/z/house.xlsx')
url1 = 'http://esf.sz.fang.com/house/i3'
for i in range(1,3):
print (url1 + str(i))
http://esf.sz.fang.com/house/i31
http://esf.sz.fang.com/house/i32
import requests
import pandas
from bs4 import BeautifulSoup
domain = 'http://esf.sz.fang.com'
url1 = 'http://esf.sz.fang.com/house/i3'
houslist = []
for i in range(1,21):
res = requests.get(url1 + str(i))
soup = BeautifulSoup(res.text,'html.parser')
for house in soup.select('.houseList dl'):
if len(house.select('.title')) > 0:
link = house.select('.title a')[0]['href']
url = domain + link
houslist.append(getHouseDetil(url))
df = pandas.DataFrame(houslist)
df.to_excel('/mnt/z/house4.xlsx')

python爬虫(房天下)的更多相关文章

  1. python爬虫-房天下-登录

    房天下-登录 本次爬取的网址为:https://passport.fang.com 一.分析请求 输入用户名和密码,点击登录按钮 请求的参数为: uid: 123456789 pwd: 64ccd42 ...

  2. python分布式爬虫--房天下

    第一步安装redis redis在windows系统中的安装与启动: 下载:redis官方是不支持windows操作系统的.但是微软的开源部门将redis移植到了windows上.因此下载地址不是在r ...

  3. python爬虫项目(scrapy-redis分布式爬取房天下租房信息)

    python爬虫scrapy项目(二) 爬取目标:房天下全国租房信息网站(起始url:http://zu.fang.com/cities.aspx) 爬取内容:城市:名字:出租方式:价格:户型:面积: ...

  4. 爬虫Scrapy框架运用----房天下二手房数据采集

    在许多电商和互联网金融的公司为了更好地服务用户,他们需要爬虫工程师对用户的行为数据进行搜集.分析和整合,为人们的行为选择提供更多的参考依据,去服务于人们的行为方式,甚至影响人们的生活方式.我们的scr ...

  5. Python爬取房天下二手房信息

    一.相关知识 BeautifulSoup4使用 python将信息写入csv import csv with open("11.csv","w") as csv ...

  6. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  7. Python爬虫利器六之PyQuery的用法

    前言 你是否觉得 XPath 的用法多少有点晦涩难记呢? 你是否觉得 BeautifulSoup 的语法多少有些悭吝难懂呢? 你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢? 你是否已经有 ...

  8. 月薪45K的Python爬虫工程师告诉你爬虫应该怎么学,太详细了!

    想用Python做爬虫,而你却还不会Python的话,那么这些入门基础知识必不可少.很多小伙伴,特别是在学校的学生,接触到爬虫之后就感觉这个好厉害的样子,我要学.但是却完全不知道从何开始,很迷茫,学的 ...

  9. Python爬虫实战三之实现山东大学无线网络掉线自动重连

    综述 最近山大软件园校区QLSC_STU无线网掉线掉的厉害,连上之后平均十分钟左右掉线一次,很是让人心烦,还能不能愉快地上自习了?能忍吗?反正我是不能忍了,嗯,自己动手,丰衣足食!写个程序解决掉它! ...

随机推荐

  1. 滚动载入server端内容——样例

    网页代码例如以下 <!doctype html> <html> <head> <meta charset="utf-8"> < ...

  2. web前端减少你按刷新的频率

    Browsersync 先下载:nodejs  ,然后安装完以后,我们在命令行打印 node -v 完成后我们进行以下操作,安装browser-sync ,官网上有详细的教程,请访问:Browsers ...

  3. 通讯编程入门--WEBSOCKET

    C#通讯编程入门--WEBSOCKET WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System ...

  4. TCP/IP常见问题总结(二)

    上一篇的传送门:TCP/IP常见问题总结(一) 6. TCP滑动窗体与回退N帧协议 TCP作为一个提供可靠服务的传输层协议,对于数据的发送必须拥有一套良好的反馈机制.让发送方得知接收方接收到了数据.而 ...

  5. python开发【第4篇】【进程、线程、协程】

    一.进程与线程概述: 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,每一个进程都有一个自己的地址空 间. 线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的.线程有时又被称为轻 ...

  6. MySQL-修改数据(REPLACE)

    MySQL-REPLACE语句 功能介绍:用于向数据库表插入或更新数据. REPLACE语句的工作原理: 如果给定行数据不存在,那么MySQL REPLACE语句会插入新行. 如果给定行数据存在,则R ...

  7. websphere修改jsp不生效的解决办法

    最近在给客户部署系统后,进行UAT测试的时候,发现一些小问题(是一些jsp文件),改好后,就进行增量发布了,可是后来在页面刷新的时候,怎么都是显示不出来效果,后来就把服务websphere重启后,页面 ...

  8. 鸟哥的Linux私房菜-----9、vi文本处理器

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVrZXdhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  9. c#生成AVI自动设置压缩格式,不调用AVISaveOptions

    工作中遇到生成AVI视频的项目,代码中会调用AVISaveOptions来设置压缩格式,针对单个文件还好说,但是批量生成视频的时候,每一个都要设置格式, 体验不是很好,经过查询资料问题得到解决 最开始 ...

  10. 各种comprehension

    1 什么是comprehension list.set.dict.generator等本质上是集合.所以,数学上的集合的表示引入到python中,{x| x属于某个集合}. 所以,comprehens ...