文档章节

Python3.5.3 爬取58同城房产数据简单例子

M
 MichaelShu
发布于 2017/04/20 17:12
字数 299
阅读 78
收藏 0

爬取58同城房产数据简单例子:

import requests
import re
import urllib.request
import time

#url = 'http://bj.58.com/ershoufang/?PGTID=0d200001-0000-177a-59fd-ff451a7a6078&ClickID=1'
url = 'http://jq.58.com/ershoufang/?PGTID=0d200001-0289-326f-83b1-136a8a11d60c&ClickID=1'

def get_html(url):
    r = requests.get(url)  # 最基本的GET请求
    #print(r.status_code)  # 获取返回状态
    #print(r.url)
    #print(r.text)  # 打印解码后的返回数据
    return r.text

def get_content(html):
    pattern = re.compile(r'<p class="bthead">[\s\S]*?<a href="(.*?)"  target="_blank" class="t" ')
    subUrls = pattern.findall(html)

    i = 0
    for subUrl  in subUrls:
        i += 1
        print("房产链接%d : %s" % (i, subUrl))
        #break
    return subUrls

def getHouseInfo(subUrls):
    i = 0
    for subUrl  in subUrls:
        subPage = urllib.request.urlopen(subUrl)
        subHtml = subPage.read().decode('utf8')
        i += 1
        #print(subHtml)
        #break

        # http://jq.58.com/ershoufang/29531455158954x.shtml?psid=175499680195669470620619228&entinfo=29531455158954_0
        # 售价:面议万元(元/㎡)

        #pattern = re.compile(r'售价:(\d[\d.]+)万元((\d{1,6})元/㎡)[\s\S]*?<h1 class="c_333 f20">(.*?)</h1>[\s\S]*?<span class=\'up\' id=\'\'>(.*?)</span>[\s\S]*?<p class=\'phone-num-2\'>(\d{1,11})</p>')
        pattern = re.compile( r'售价:(.*?)万元((.*?)元/㎡)[\s\S]*?<h1 class="c_333 f20">(.*?)</h1>[\s\S]*?<span class=\'up\' id=\'\'>(.*?)</span>[\s\S]*?<p class=\'phone-num-2\'>(\d{1,11})</p>')

        Info = pattern.findall(subHtml)
        time.sleep(0.2)
        print('%d售价:%s万元   单价:%s元/㎡   标题;%s   更新时间:%s   联系电话:%s' % (i,Info[0][0],Info[0][1],Info[0][2],Info[0][3],Info[0][4]))

html = get_html(url)
subUrls = get_content(html)
getHouseInfo(subUrls)

© 著作权归作者所有

M
粉丝 7
博文 116
码字总数 24986
作品 0
海淀
技术主管
私信 提问
关于Python爬虫,这里有一条高效的学习路径

你是否发现周围会爬虫的人越来越多?一方面互联网的数据价值越来越大,比如做市场分析、竞品调研、数据挖掘……都可以通过爬虫获得很好的数据集。另一方面,像Python这样的语言足够简单,也有...

DataCastle
2018/04/18
1K
0
【得得专栏】何玺:姚劲波冲进区块链,58BaaS姿势有点不对! 2018-08-23

链得得专栏作者简介:何玺。10年+资深媒体评论人。酷科技创始人,区块链创业者。多家纸媒特约撰稿人。关注行业趋势,关注企业战略。 日前,58集团黑板报发布了58集团推出区块链服务平台58Baa...

链得得
2018/08/23
0
0
养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)

先上一个源代码吧。 https://github.com/answershuto/Rental 欢迎指导交流。 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启动服务,加入自己所需要的中间件即可,这个...

染陌同学
2016/12/20
97
2
58同城徐振华:58同城分布式存储架构

58同城是位于北京的分类信息网站,提供房产、招聘、黄页、团购、交友、二手、宠物、车辆、周边游等海量分类信息。58在google top1000全球网站排行版中排名在50-60左右,而支撑58同城大规模流...

凯文加内特
2015/03/02
178
0
Python爬取58同城广州房源+可视化分析

感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 对商业智能BI、大数据分析挖...

天善智能
2018/05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部