Python爬虫之小猪短租房一、xpath爬取分析二、代码三、简单分析四、问题

前天初步学习了xpath,今天进行一下小练习,爬取小猪短租房北京房源的信息

一、xpath爬取分析

1 爬取的信息有价格,地点,出租类型,床数量,宜居人数,评分,点评数。

2 xpath是先抓大在抓小,找循环点。

二、代码

import requests
from lxml import etree
import pymongo

client = pymongo.MongoClient('localhost', 27017)
test = client['test']
xiaozhu = test['xiaozhu']

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}

urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(str(i)) for i in range(1,14)]

def get_info(url):
    html = requests.get(url,headers=headers)
    selector = etree.HTML(html.text)
    commoditys = selector.xpath('//ul[@class="pic_list clearfix"]/li')

    for commodity in commoditys:
        address = commodity.xpath('div/div/a/span[@class="result_title hiddenTxt"]/text()')[0]
        price = commodity.xpath('div/span[@class="result_price"]/i/text()')[0]
        lease_type = commodity.xpath('div/div/em/text()')[0].split('/')[0].strip()
        bed_amount = commodity.xpath('div/div/em/text()')[0].split('/')[1].strip()
        suggestion = commodity.xpath('div/div/em/text()')[0].split('/')[2].strip()
        infos = commodity.xpath('div/div/em/span/text()')[0].strip()
        comment_star = infos.split('/')[0] if '/' in infos else '无'
        comment_amount = infos.split('/')[1] if '/' in infos else infos

        content = {
            'address':address,
            'price':price,
            'lease_type':lease_type,
            'bed_amount':bed_amount,
            'suggestion':suggestion,
            'comment_star':comment_star,
            'comment_amount':comment_amount
        }
        xiaozhu.insert_one(content)

for url in urls:
    get_info(url)

三、简单分析

上次许多人问我,数据图是用什么做的,在这里给大家说一下:是用个人BDP做的,很简单,但个人版连接数据只支持csv和excel格式的数据,所以我的做法是:先导入mongodb,然后通过mongodb的导出功能导出为CSV的数据进行分析,导出csv格式的代码:

mongoexport -d test -c xiaozhu --csv -f address,price,lease_type,bed_amount,suggestion,comment_star,comment_amount -o xiaozhu.csv

1 -d数据库 2 -c表数据 3 -f表示要导出的字段

四、问题

学习xpath是为scrapy框架做准备,自己捣鼓了二天,写的代码爬不出数据(也是小猪短租的爬取),本人win7系统加python3.5

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

客户端WebP 图片格式优化

前言 在移动端,图片一直是流量大头,一些商品列表和详情等页面,图片大小动不动就以几百K,当然在某些比较大的公司会根据具体情况去加载相应尺寸的图片,这就意味着服务...

2619
来自专栏何俊林

FFmpeg总结(一)FFmpeg官方文档分块

正式开启FFmpeg总结,预计这个将是一个2-3年的时间线,或者更久,今天是从官方文档出发,带大家找到最小块的切入点。 http://ffmpeg.org/d...

2597
来自专栏小白课代表

图像浏览器 —— Honeyview

https://dl.bandisoft.com/honeyview/HONEYVIEW-SETUP.EXE

1073
来自专栏腾讯NEXT学位

简单三步做出微信h5表情包

1854
来自专栏AI研习社

百度开源移动端深度学习框架 MDL,可在苹果安卓系统自由切换

AI研习社消息,日前,百度在 GitHub 上开源了移动端深度学习框架 mobile-deep-learning(MDL)的全部代码以及脚本,这项研究旨在让卷积...

3356
来自专栏AI科技评论

开发 | 百度开源移动端深度学习框架MDL,可在苹果安卓系统自由切换

AI科技评论消息,日前,百度在 GitHub 上开源了移动端深度学习框架 mobile-deep-learning(MDL)的全部代码以及脚本,这项研究旨在让卷...

27711
来自专栏跟边禾玩建模

关于使用ZBrush,你可能不知道的10个技巧

作为数字雕刻的行业标准,ZBrush的工具集非常灵活,以至于能够让用户选择最适合他们自己的工作流,人们会因为它的众多可用选项而选择经常使用它,程序里的旧功能也许...

1662
来自专栏史上最简单的Spring Cloud教程

Python爬虫,看看我最近博客都写了啥,带你制作高逼格的数据聚合云图

今天一时兴起,想用python爬爬自己的博客,通过数据聚合,制作高逼格的云图(对词汇出现频率视觉上的展示),看看最近我到底写了啥文章。 一、直接上几张我的博客数...

20510
来自专栏BGP专栏

BGP电路详解(上)

1.把匹配器件相互靠近放置  (共OD/Poly/OD space/Poly space一致)

1850
来自专栏日常学python

我爬取了37000条球迷评论,知道了这场比赛的重要信息

这两天看恰好有nba决赛,是球迷的你肯定不会错过的,更何况今年的西部决赛是火箭对战勇士,今年的火箭是很强的,因为没到关键时候总会有人站出来。当然,勇士也是挺强的...

952

扫码关注云+社区