python爬取链家房屋及经纬度信息-以宁波为例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python爬取链家房屋及经纬度信息-以宁波为例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1850字,纯文字阅读大概需要3分钟。
内容图文
铺垫工作
1:寻找你需要的城市的url。
2 :获取每栋房屋的详情url。
3:获取具体信息
4:利用百度API解析地址返回经纬度(其实在链家的网站上已经返回了经纬度,但是不知道为何拿不到res.text,有待研究)
# encoding: utf-8 import json import requests from bs4 import BeautifulSoup import re import sys reload(sys) sys.setdefaultencoding('utf-8') for i in range(100): #循环构造url url = 'http://nb.lianjia.com/ershoufang/pg{}/' k=url.format(i) #添加请求头,否则会被拒绝 headers = {'user-agent': 'my-app/0.0.1'} res = requests.get(k,headers=headers) #基于正则表达式来解析网页内容,拿到所有的详情url #原始可能是这么做的,但是后来发现bs4给我们提供了更方便的方法来取得各元素的内容 #正则表达式最重要的两个东西,.任意匹配字符,*匹配任意次数,?以html结束 text=res.text re_set = re.compile('https://nb.lianjia.com/ershoufang/[0-9]*.?html') re_get = re.findall(re_set, text) for name in re_get: res = requests.get(name, headers=headers) info = {} text2 = res.text #基于bs4来解析,再也不用写正则了。 soup = BeautifulSoup(text2, 'lxml') info['标题'] = soup.select('.main')[0].text info['总价'] = soup.select('.total')[0].text info['每平方售价'] = soup.select('.unitPriceValue')[0].text info['参考总价'] = soup.select('.taxtext')[0].text info['建造时间'] = soup.select('.subInfo')[2].text info['小区名称'] = soup.select('.info')[0].text info['所在区域'] = soup.select('.info a')[0].text + ':' + soup.select('.info a')[1].text info['链家编号'] = str(re_get)[33:].rsplit('.html')[0] # 根据地址获取对应经纬度,通过百度的api接口来进行 mc=soup.select('.info')[0].text location='宁波'+mc api_url = 'http://api.map.baidu.com/geocoder/v2/?address={}&output=json&ak=百度申请的秘钥'.format(location) data = requests.get(api_url) result = json.loads(data.text) print(result) try: longitude = result['result']['location']['lng'] latitude = result['result']['location']['lat'] except Exception as e: print('Error:这个地点没有查到对应的经纬度---- %s' % str(e)) longitude = [0] latitude = [0] k=1
内容总结
以上是互联网集市为您收集整理的python爬取链家房屋及经纬度信息-以宁波为例全部内容,希望文章能够帮你解决python爬取链家房屋及经纬度信息-以宁波为例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。