博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫爬取房天下数据-入MySql数据库
阅读量:6933 次
发布时间:2019-06-27

本文共 2099 字,大约阅读时间需要 6 分钟。

Python爬取房天下某城市数据

随着互联网时代的兴起,技术日新月异,掌握一门新技术对职业发展有着很深远的意义,做的第一个demo,以后会在爬虫和数据分析方便做更深的研究,本人不会做详细的文档,有哪里不足的地方,希望大牛们指点讲解。废话不多说,上代码。

你需要的技能:

(1)对前端知识熟悉会调试浏览器

(2)熟练python基础知识,对一些常用的库熟练掌握

(3)掌握一般关系型数据库

import requests as reqimport timeimport pandas as pdfrom bs4 import BeautifulSoupfrom sqlalchemy import create_engineglobal infodef getHouseInfo(url):	info = {}	soup = BeautifulSoup(req.get(url).text,"html.parser")	resinfo = soup.select(".tab-cont-right .trl-item1")	# 获取户型、建筑面积、单价、朝向、楼层、装修情况	for re in resinfo:		tmp = re.text.strip().split("\n")		name = tmp[1].strip()		if("朝向" in name):			name = name.strip("进门")		if("楼层" in name):			name = name[0:2]		if("地上层数" in name):			name = "楼层"		if("装修程度" in name):			name = "装修"		info[name] = tmp[0].strip()	xiaoqu = soup.select(".rcont .blue")[0].text.strip()	info["小区名字"] = xiaoqu	zongjia = soup.select(".tab-cont-right .trl-item")	info["总价"] = zongjia[0].text	return infodomain = "http://esf.anyang.fang.com/"city = "house/"#获取总页数def getTotalPage():	res = req.get(domain+city+"i31")	soup = BeautifulSoup(res.text, "html.parser")	endPage = soup.select(".page_al a").pop()['href']	pageNum = endPage.strip("/").split("/")[1].strip("i3")	print("loading.....总共 "+pageNum+" 页数据.....")	return pageNum# 分页爬取数据def pageFun(i):	pageUrl = domain + city + "i3" +i	print(pageUrl+" loading...第 "+i+" 页数据.....")	res = req.get(pageUrl)	soup = BeautifulSoup(res.text,"html.parser")	houses = soup.select(".shop_list dl")	pageInfoList = []	for house in houses:		try:			# print(domain + house.select("a")[0]['href'])			info = getHouseInfo(domain + house.select("a")[0]['href'])			pageInfoList.append(info)			print(info)		except Exception as e:			print("---->出现异常,跳过 继续执行",e)	df =  pd.DataFrame(pageInfoList)	return dfconnect = create_engine("mysql+pymysql://root:root@localhost:3306/houseinfo?charset=utf8")for i in range(1,int(getTotalPage())+1):	try:		df_onePage = pageFun(str(i))	except Exception as e:		print("Exception",e)	pd.io.sql.to_sql(df_onePage, "city_house_price", connect, schema="houseinfo", if_exists="append")

 

  

 

转载于:https://www.cnblogs.com/flyLove/p/9379972.html

你可能感兴趣的文章
2012年3月美国最佳虚拟主机提供商TOP12性能评测
查看>>
0-999以内的水仙花数
查看>>
基础之简单命令_1
查看>>
离线部署ELK+kafka日志管理系统
查看>>
所有windows系统快速建立用户解读
查看>>
我的友情链接
查看>>
通过signall.SIGKILL在指定位置结束正在执行的进程
查看>>
Jmeter是什么?
查看>>
MHA环境搭建及配置使用
查看>>
nginx+lua+redis实现GET请求接口之黑名单(二)
查看>>
nwfilter规则
查看>>
EXCEl 算时间,扣除双休日,非工作时间
查看>>
UITableView使用过程中可能遇到的问题
查看>>
php获取服务器时间
查看>>
Libnfc-installation
查看>>
我的友情链接
查看>>
大学毕业前的目标
查看>>
从mysqldump备份数据库里面恢复一张表时遇到的问题
查看>>
打造64位Ubuntu个人工作平台
查看>>
LA3027(并查集)
查看>>