Python爬虫系列(2)

Python可以用来做自动化测试,也可以做爬虫。

由于时间紧迫,先上代码,方便随时复习。

如下,爬取的是豆瓣电影 Top 250的信息:

(爬取豆瓣网站的好处是不需要加入反爬取代码,方便新手入门Python爬虫)

import requests
from bs4 import BeautifulSoup
from time import sleep

def get_file_info(url):
    web_data = requests.get(url)
    soup = BeautifulSoup(web_data.text,'lxml')

    nums = soup.select('div.top250 > span.top250-no')
    #content > div.top250 > span.top250-no
    num = nums[0].text.strip('No.')  #使用strip将No.1的No.去掉

    title = soup.select('h1 > span')
    #content > h1 > span:nth-child(1)
    #content > h1 > span.year
    name = title[0].text

    time = title[1].text.strip('()') #使用strip将(1994)的括号去掉

    scores = soup.select('div.rating_wrap.clearbox > div.rating_self.clearfix > strong')
    #interest_sectl > div.rating_wrap.clearbox > div.rating_self.clearfix > strong
    score = scores[0].text

    infos = soup.select('div.grid-16-8.clearfix > div.article > div.indent.clearfix > div.subjectwrap.clearfix > div.subject.clearfix')
    #info > span:nth-child(8)
    #info > br:nth-child(12)
    #content > div.grid-16-8.clearfix > div.article > div.indent.clearfix > div.subjectwrap.clearfix > div.subject.clearfix
    #info
    info = infos[0].text.strip()

    #print(infos)

    data = {
        'num'   : num,
        'name'  : name,
        'time'  : time,
        'score' : score,
        'info'  : info
    }
    print(data)


urls = ['https://movie.douban.com/top250?start={}&filter='.format(str(i*25)) for i in range(0,10)]

for url in urls :
    web_data = requests.get(url)
    soup = BeautifulSoup(web_data.text, 'lxml')
    hrefs = soup.select('div.hd > a')
    # content > div > div.article > ol > li:nth-child(1) > div > div.info > div.hd > a
    # print(url)
    for href in hrefs:
        link = href.get('href')
        get_file_info(link)
        sleep(1)

 

爬取结果部分展示如下

{'num': '1', 'name': '肖申克的救赎 The Shawshank Redemption', 'time': '1994', 'score': '9.6', 'info': '导演: 弗兰克·德拉邦特\n编剧: 弗兰克·德拉邦特 / 斯蒂芬·金\n主演: 蒂姆·罗宾斯 / 摩根·弗里曼 / 鲍勃·冈顿 / 威廉姆·赛德勒 / 克兰西·布朗 / 吉尔·贝罗斯 / 马克·罗斯顿 / 詹姆斯·惠特摩 / 杰弗里·德曼 / 拉里·布兰登伯格 / 尼尔·吉恩托利 / 布赖恩·利比 / 大卫·普罗瓦尔 / 约瑟夫·劳格诺 / 祖德·塞克利拉 / 保罗·麦克兰尼 / 芮妮·布莱恩 / 阿方索·弗里曼 / V·J·福斯特 / 弗兰克·梅德拉诺 / 马克·迈尔斯 / 尼尔·萨默斯 / 耐德·巴拉米 / 布赖恩·戴拉特 / 唐·麦克马纳斯\n类型: 剧情 / 犯罪\n制片国家/地区: 美国\n语言: 英语\n上映日期: 1994-09-10(多伦多电影节) / 1994-10-14(美国)\n片长: 142分钟\n又名: 月黑高飞(港) / 刺激1995(台) / 地狱诺言 / 铁窗岁月 / 消香克的救赎\nIMDb链接: tt0111161'}
{'num': '2', 'name': '霸王别姬', 'time': '1993', 'score': '9.6', 'info': '导演: 陈凯歌\n编剧: 芦苇 / 李碧华\n主演: 张国荣 / 张丰毅 / 巩俐 / 葛优 / 英达 / 蒋雯丽 / 吴大维 / 吕齐 / 雷汉 / 尹治 / 马明威 / 费振翔 / 智一桐 / 李春 / 赵海龙 / 李丹 / 童弟 / 沈慧芬 / 黄斐\n类型: 剧情 / 爱情 / 同性\n制片国家/地区: 中国大陆 / 香港\n语言: 汉语普通话\n上映日期: 1993-01-01(香港)\n片长: 171 分钟\n又名: 再见,我的妾 / Farewell My Concubine\nIMDb链接: tt0106332'}
{'num': '3', 'name': '这个杀手不太冷 Léon', 'time': '1994', 'score': '9.4', 'info': '导演: 吕克·贝松\n编剧: 吕克·贝松\n主演: 让·雷诺 / 娜塔莉·波特曼 / 加里·奥德曼 / 丹尼·爱罗 / 彼得·阿佩尔 / 迈克尔·巴达鲁科 / 艾伦·格里尼 / 伊丽莎白·瑞根 / 卡尔·马图斯维奇 / 弗兰克·赛格 / 麦温 / 乔治·马丁 / 罗伯特·拉萨多 / 亚当·布斯奇 / 马里奥·托迪斯科 / 萨米·纳塞利\n类型: 剧情 / 动作 / 犯罪\n制片国家/地区: 法国\n语言: 英语 / 意大利语 / 法语\n上映日期: 1994-09-14(法国)\n片长: 110分钟(剧场版) / 133分钟(国际版)\n又名: 杀手莱昂 / 终极追杀令(台) / 杀手里昂 / Leon / Leon: The Professional\nIMDb链接: tt0110413'}
{'num': '4', 'name': '阿甘正传 Forrest Gump', 'time': '1994', 'score': '9.4', 'info': "导演: 罗伯特·泽米吉斯\n编剧: 艾瑞克·罗斯 / 温斯顿·格鲁姆\n主演: 汤姆·汉克斯 / 罗宾·怀特 / 加里·西尼斯 / 麦凯尔泰·威廉逊 / 莎莉·菲尔德 / 海利·乔·奥斯蒙 / 迈克尔·康纳·亨弗里斯 / Harold G. Herthum / 山姆·安德森 / Ione M. Telech / 彼得·道博森 / 希芳·法隆 / Elizabeth Hanks / 汉娜·豪尔 / Christopher Jones / Rob Landry / Jason McGuire / 桑尼·施罗耶 / Ed Davis / 丹尼尔C.斯瑞派克 / 大卫·布里斯宾 / Deborah McTeer / Al Harrington / 阿非莫·奥米拉 / John Voldstad / Michael Burgess / Eric Underwood / Byron Minns / 斯蒂芬·布吉格沃特 / John William Galt / Hilary Chaplain / Isabel Rose / Richard D'Alessandro / Dick Stilwell / 迈克尔-杰斯 / 杰弗里·布莱克 / 瓦妮莎·罗斯 / 迪克·卡维特 / 马拉·苏查雷特扎 / Joe Alaskey / W. Benson Terry\n类型: 剧情 / 爱情\n制片国家/地区: 美国\n语言: 英语\n上映日期: 1994-06-23(洛杉矶首映) / 1994-07-06(美国)\n片长: 142分钟\n又名: 福雷斯特·冈普\nIMDb链接: tt0109830"}
{'num': '5', 'name': '美丽人生 La vita è bella', 'time': '1997', 'score': '9.5', 'info': '导演: 罗伯托·贝尼尼\n编剧: 温琴佐·切拉米 / 罗伯托·贝尼尼\n主演: 罗伯托·贝尼尼 / 尼可莱塔·布拉斯基 / 乔治·坎塔里尼 / 朱斯蒂诺·杜拉诺 / 赛尔乔·比尼·布斯特里克 / 玛丽萨·帕雷德斯 / 霍斯特·布赫霍尔茨 / 利迪娅·阿方西 / 朱利亚娜·洛约迪切 / 亚美利哥·丰塔尼 / 彼得·德·席尔瓦 / 弗朗西斯·古佐 / 拉法埃拉·莱博罗尼 / 克劳迪奥·阿方西 / 吉尔·巴罗尼 / 马西莫·比安奇 / 恩尼奥·孔萨尔维 / 吉安卡尔洛·科森蒂诺 / 阿伦·克雷格 / 汉尼斯·赫尔曼 / 弗兰科·梅斯科利尼 / 安东尼奥·普雷斯特 / 吉娜·诺维勒 / 理查德·塞梅尔 / 安德烈提多娜 / 迪尔克·范登贝格 / 奥梅罗·安东努蒂\n类型: 剧情 / 喜剧 / 爱情 / 战争\n制片国家/地区: 意大利\n语言: 意大利语 / 德语 / 英语\n上映日期: 1997-12-20(意大利)\n片长: 116分钟 / 125分钟(加长版)\n又名: 一个快乐的传说(港) / Life Is Beautiful\nIMDb链接: tt0118799'}
{'num': '6', 'name': '泰坦尼克号 Titanic', 'time': '1997', 'score': '9.3', 'info': '导演: 詹姆斯·卡梅隆\n编剧: 詹姆斯·卡梅隆\n主演: 莱昂纳多·迪卡普里奥 / 凯特·温丝莱特 / 比利·赞恩 / 凯西·贝茨 / 弗兰西丝·费舍 / 格劳瑞亚·斯图尔特 / 比尔·帕克斯顿 / 伯纳德·希尔 / 大卫·沃纳 / 维克多·加博 / 乔纳森·海德 / 苏茜·爱米斯 / 刘易斯·阿伯内西 / 尼古拉斯·卡斯柯恩 / 阿那托利·萨加洛维奇 / 丹尼·努齐 / 杰森·贝瑞 / 伊万·斯图尔特 / 艾恩·格拉法德 / 乔纳森·菲利普斯 / 马克·林赛·查普曼 / 理查德·格拉翰 / 保罗·布赖特威尔 / 艾瑞克·布里登 / 夏洛特·查顿 / 博纳德·福克斯 / 迈克尔·英塞恩 / 法妮·布雷特 / 马丁·贾维斯 / 罗莎琳·艾尔斯 / 罗切尔·罗斯 / 乔纳森·伊万斯-琼斯 / 西蒙·克雷恩 / 爱德华德·弗莱彻 / 斯科特·安德森 / 马丁·伊斯特 / 克雷格·凯利 / 格雷戈里·库克 / 利亚姆·图伊 / 詹姆斯·兰开斯特 / 艾尔莎·瑞雯 / 卢·帕尔特 / 泰瑞·佛瑞斯塔 / 凯文·德·拉·诺伊\n类型: 剧情 / 爱情 / 灾难\n制片国家/地区: 美国\n语言: 英语 / 意大利语 / 德语 / 俄语\n上映日期: 1998-04-03(中国大陆) / 1997-11-01(东京电影节) / 1997-12-19(美国)\n片长: 194分钟\n又名: 铁达尼号(港/台)\nIMDb链接: tt0120338'}
{'num': '7', 'name': '千与千寻 千と千尋の神隠し', 'time': '2001', 'score': '9.3', 'info': '导演: 宫崎骏\n编剧: 宫崎骏\n主演: 柊瑠美 / 入野自由 / 夏木真理 / 菅原文太 / 中村彰男 / 玉井夕海 / 神木隆之介 / 内藤刚志 / 泽口靖子 / 我修院达也 / 大泉洋 / 小林郁夫 / 上条恒彦 / 小野武彦\n类型: 剧情 / 动画 / 奇幻\n制片国家/地区: 日本\n语言: 日语\n上映日期: 2001-07-20(日本)\n片长: 125分钟\n又名: 神隐少女(台) / Spirited Away / A Voyage of Chihiro / Sen to Chihiro no kamikakushi\nIMDb链接: tt0245429'}
{'num': '8', 'name': "辛德勒的名单 Schindler's List", 'time': '1993', 'score': '9.5', 'info': '导演: 史蒂文·斯皮尔伯格\n编剧: 托马斯·肯尼利 / 斯蒂文·泽里安\n主演: 连姆·尼森 / 本·金斯利 / 拉尔夫·费因斯 / 卡罗琳·古多尔 / 乔纳森·萨加尔 / 艾伯丝·戴维兹 / 马尔戈萨·格贝尔 / 马克·伊瓦涅 / 碧翠斯·马科拉 / 安德烈·瑟韦林 / 弗里德里希·冯·图恩 / 克齐斯茨托夫·拉夫特 / 诺伯特·魏塞尔\n类型: 剧情 / 历史 / 战争\n制片国家/地区: 美国\n语言: 英语 / 希伯来语 / 德语 / 波兰语\n上映日期: 1993-11-30(华盛顿首映) / 1994-02-04(美国)\n片长: 195分钟\n又名: 舒特拉的名单(港) / 辛德勒名单\nIMDb链接: tt0108052'}
{'num': '9', 'name': '盗梦空间 Inception', 'time': '2010', 'score': '9.3', 'info': '导演: 克里斯托弗·诺兰\n编剧: 克里斯托弗·诺兰\n主演: 莱昂纳多·迪卡普里奥 / 约瑟夫·高登-莱维特 / 艾伦·佩吉 / 汤姆·哈迪 / 渡边谦 / 迪利普·劳 / 基里安·墨菲 / 汤姆·贝伦杰 / 玛丽昂·歌迪亚 / 皮特·波斯尔思韦特 / 迈克尔·凯恩 / 卢卡斯·哈斯 / 李太力 / 克莱尔·吉尔蕾 / 马格努斯·诺兰 / 泰勒·吉蕾 / 乔纳森·吉尔 / 水源士郎 / 冈本玉二 / 厄尔·卡梅伦 / 瑞恩·海沃德 / 米兰达·诺兰 / 拉什·费加 / 蒂姆·科勒赫 / 妲露拉·莱莉\n类型: 剧情 / 科幻 / 悬疑 / 冒险\n制片国家/地区: 美国 / 英国\n语言: 英语 / 日语 / 法语\n上映日期: 2010-09-01(中国大陆) / 2010-07-16(美国)\n片长: 148分钟\n又名: 潜行凶间(港) / 全面启动(台) / 奠基 / 心灵犯案 / 记忆迷阵 / 记忆魔方\nIMDb链接: tt1375666\n官方小站:\n盗梦空间-Inception'}
{'num': '10', 'name': "忠犬八公的故事 Hachi: A Dog's Tale", 'time': '2009', 'score': '9.3', 'info': '导演: 拉斯·霍尔斯道姆\n编剧: 斯蒂芬·P·林赛 / 新藤兼人\n主演: 理查·基尔 / 萨拉·罗默尔 / 琼·艾伦 / 罗比·萨布莱特 / 艾瑞克·阿瓦利 / 田川洋行 / 杰森·亚历山大 / 罗伯特·卡普荣\n类型: 剧情\n制片国家/地区: 美国 / 英国\n语言: 英语 / 日语\n上映日期: 2009-06-13(西雅图电影节) / 2010-03-12(英国)\n片长: 93分钟\n又名: 忠犬小八(台) / 秋田犬八千(港) / 忠犬传奇\nIMDb链接: tt1028532'}

下一篇是对爬取结果的处理,比如使用数据库以及数据可视化等操作

 

其实对于豆瓣网站我们想爬取的基本信息在第一页就能看到,不用像本方法一样先爬取第一页的超链接然后逐次爬取第一页的各个超链接对应的页面内容。本方法是通用方法,对于第一页没有我们需求信息的网站同样适用。

比如某租房网站(我目前租房用的,带有反爬取措施,不过比较简单,等待时间设置久一点即可),第一页没有楼层等我们需要的信息,代码如下:

import requests
from bs4 import BeautifulSoup
from time import sleep
#url = 'http://sh.baletu.com/house/771996.html?entrance=1&zhaofang_index_entrance='
def get_file_info(url):
    web_data = requests.get(url)
    soup = BeautifulSoup(web_data.text,'lxml')

    areas = soup.select('div.basic-line > div > div > div.house-text-Akey > ul > li.cent')
    #body > div.basic-line > div > div > div.house-text-Akey > ul > li.cent
    #body > div.basic-line > div > div > div.house-text-Akey > ul > li.cent
    area = areas[0].text
    #print(soup)

    prices = soup.select('div.basic-line > div > div > div.house-text-Akey > ul > li.price')
    #body > div.basic-line > div > div > div.house-text-Akey > ul > li.price
    price = prices[0].text

    places = soup.select('div.basic-line > div > div > div.house-text-list.clearfix > dl:nth-child(6) > dd > a')
    #body > div.basic-line > div > div > div.house-text-list.clearfix > dl:nth-child(6) > dd > a:nth-child(1)
    place = places[0].text+'-'+places[-1].text

    lays = soup.select('div.basic-line > div > div > div.house-text-list.clearfix > dl:nth-child(3) > dd')
    #body > div.basic-line > div > div > div.house-text-list.clearfix > dl:nth-child(3) > dd
    lay = lays[0].text

#print(lay)

    data = {
        '面积'   : area,
        '价格'  : price,
        '地区'  : place,
        '楼层' : lay
    }
    print(data)

#get_file_info()



urls = ['http://www.baletu.com/zhaofang/p{}d101o1a1/?seachId=0'.format(str(i)) for i in range(1,3)]

for url in urls :
    web_data = requests.get(url)
    soup = BeautifulSoup(web_data.text, 'lxml')
    hrefs = soup.select('div.list-pic-title > h3 >a')

    for href in hrefs:
        link = href.get('href')
        #print(link)
        get_file_info(link)
        sleep(2)

爬取结果展示如下:

{'面积': '15 M²', '价格': '1500元/月', '地区': '闵行-古美罗阳', '楼层': '6层/共7层'}
{'面积': '25 M²', '价格': '2300元/月', '地区': '闵行-莘庄', '楼层': '1层/共14层'}
{'面积': '14 M²', '价格': '1700元/月', '地区': '闵行-古美罗阳', '楼层': '3层/共14层'}
{'面积': '16 M²', '价格': '1250元/月', '地区': '闵行-莘庄', '楼层': '1层/共6层'}
{'面积': '21 M²', '价格': '1200元/月', '地区': '闵行-莘庄', '楼层': '8层/共8层'}
{'面积': '18 M²', '价格': '1850元/月', '地区': '闵行-莘庄', '楼层': '6层/共6层'}
{'面积': '8 M²', '价格': '1000元/月', '地区': '闵行-莘庄', '楼层': '24层/共24层'}
{'面积': '24 M²', '价格': '1500元/月', '地区': '闵行-古美罗阳', '楼层': '7层/共14层'}
{'面积': '22 M²', '价格': '2280元/月', '地区': '闵行-莘庄', '楼层': '1层/共6层'}
{'面积': '18 M²', '价格': '1980元/月', '地区': '闵行-莘庄', '楼层': '4层/共6层'}
{'面积': '20 M²', '价格': '2800元/月', '地区': '闵行-莘庄', '楼层': '14层/共18层'}
{'面积': '19 M²', '价格': '1200元/月', '地区': '闵行-莘庄', '楼层': '7层/共17层'}
{'面积': '20 M²', '价格': '1550元/月', '地区': '闵行-莘庄', '楼层': '层/共层'}
{'面积': '12 M²', '价格': '1900元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '15 M²', '价格': '1350元/月', '地区': '闵行-莘庄', '楼层': '11层/共18层'}
{'面积': '18 M²', '价格': '2100元/月', '地区': '闵行-古美罗阳', '楼层': '5层/共21层'}
{'面积': '20 M²', '价格': '2000元/月', '地区': '闵行-古美罗阳', '楼层': '8层/共11层'}
{'面积': '24 M²', '价格': '2700元/月', '地区': '闵行-古美罗阳', '楼层': '7层/共14层'}
{'面积': '20 M²', '价格': '2080元/月', '地区': '闵行-莘庄', '楼层': '2层/共6层'}
{'面积': '16 M²', '价格': '1500元/月', '地区': '闵行-莘庄', '楼层': '8层/共12层'}
{'面积': '16 M²', '价格': '1850元/月', '地区': '闵行-莘庄', '楼层': '2层/共5层'}
{'面积': '18 M²', '价格': '1450元/月', '地区': '闵行-莘庄', '楼层': '12层/共13层'}
{'面积': '23 M²', '价格': '1950元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '25 M²', '价格': '3000元/月', '地区': '闵行-古美罗阳', '楼层': '9层/共12层'}
{'面积': '18 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '17层/共18层'}
{'面积': '20 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '18 M²', '价格': '1600元/月', '地区': '闵行-莘庄', '楼层': '11层/共12层'}
{'面积': '28 M²', '价格': '3080元/月', '地区': '闵行-莘庄', '楼层': '3层/共7层'}
{'面积': '16 M²', '价格': '1600元/月', '地区': '闵行-莘庄', '楼层': '6层/共7层'}
{'面积': '23 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '1层/共14层'}
{'面积': '15 M²', '价格': '2180元/月', '地区': '闵行-莘庄', '楼层': '11层/共18层'}
{'面积': '15 M²', '价格': '1500元/月', '地区': '闵行-莘庄', '楼层': '8层/共8层'}
{'面积': '15 M²', '价格': '1050元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '18 M²', '价格': '1400元/月', '地区': '闵行-古美罗阳', '楼层': '2层/共14层'}
{'面积': '18 M²', '价格': '2850元/月', '地区': '闵行-莘庄', '楼层': '14层/共14层'}
{'面积': '60 M²', '价格': '5000元/月', '地区': '闵行-莘庄', '楼层': '13层/共18层'}
{'面积': '13 M²', '价格': '1480元/月', '地区': '闵行-莘庄', '楼层': '3层/共7层'}
{'面积': '20 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '6层/共7层'}
{'面积': '19 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '1层/共14层'}
{'面积': '13 M²', '价格': '1300元/月', '地区': '闵行-莘庄', '楼层': '1层/共6层'}
{'面积': '15 M²', '价格': '1200元/月', '地区': '闵行-莘庄', '楼层': '8层/共8层'}
{'面积': '20 M²', '价格': '2300元/月', '地区': '闵行-古美罗阳', '楼层': '7层/共14层'}
{'面积': '18 M²', '价格': '2350元/月', '地区': '闵行-莘庄', '楼层': '14层/共14层'}
{'面积': '76 M²', '价格': '4800元/月', '地区': '闵行-莘庄', '楼层': '18层/共22层'}
{'面积': '20 M²', '价格': '2100元/月', '地区': '闵行-莘庄', '楼层': '1层/共14层'}
{'面积': '14 M²', '价格': '1100元/月', '地区': '闵行-莘庄', '楼层': '1层/共6层'}
{'面积': '16 M²', '价格': '2150元/月', '地区': '闵行-莘庄', '楼层': '14层/共14层'}
{'面积': '16 M²', '价格': '1260元/月', '地区': '闵行-莘庄', '楼层': '2层/共10层'}
{'面积': '25 M²', '价格': '2780元/月', '地区': '闵行-莘庄', '楼层': '8层/共20层'}
{'面积': '15 M²', '价格': '1300元/月', '地区': '闵行-莘庄', '楼层': '8层/共18层'}
{'面积': '12 M²', '价格': '1650元/月', '地区': '闵行-莘庄', '楼层': '10层/共14层'}
{'面积': '23 M²', '价格': '1250元/月', '地区': '闵行-莘庄', '楼层': '7层/共17层'}
{'面积': '15 M²', '价格': '1150元/月', '地区': '闵行-莘庄', '楼层': '10层/共未知层'}
{'面积': '20 M²', '价格': '1900元/月', '地区': '闵行-莘庄', '楼层': '8层/共15层'}
{'面积': '15 M²', '价格': '1300元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '14 M²', '价格': '1400元/月', '地区': '闵行-莘庄', '楼层': '8层/共14层'}
{'面积': '15 M²', '价格': '1300元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '26 M²', '价格': '2200元/月', '地区': '闵行-莘庄', '楼层': '5层/共17层'}
{'面积': '14 M²', '价格': '1500元/月', '地区': '闵行-莘庄', '楼层': '7层/共9层'}
{'面积': '15 M²', '价格': '1900元/月', '地区': '闵行-莘庄', '楼层': '15层/共30层'}
{'面积': '12 M²', '价格': '1900元/月', '地区': '闵行-古美罗阳', '楼层': '5层/共6层'}
{'面积': '23 M²', '价格': '1900元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '20 M²', '价格': '1200元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '15 M²', '价格': '2350元/月', '地区': '闵行-莘庄', '楼层': '4层/共6层'}
{'面积': '25 M²', '价格': '2000元/月', '地区': '闵行-莘庄', '楼层': '层/共层'}
{'面积': '16 M²', '价格': '2100元/月', '地区': '闵行-莘庄', '楼层': '25层/共29层'}
{'面积': '23 M²', '价格': '2450元/月', '地区': '闵行-古美罗阳', '楼层': '3层/共6层'}
{'面积': '24 M²', '价格': '2400元/月', '地区': '闵行-古美罗阳', '楼层': '2层/共16层'}
{'面积': '26 M²', '价格': '3553元起/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '32 M²', '价格': '2400元起/月', '地区': '闵行-莘庄', '楼层': '2层/共4层'}
{'面积': '15 M²', '价格': '2300元/月', '地区': '闵行-古美罗阳', '楼层': '4层/共14层'}
{'面积': '17 M²', '价格': '2390元/月', '地区': '闵行-古美罗阳', '楼层': '11层/共24层'}
{'面积': '14 M²', '价格': '1650元/月', '地区': '闵行-莘庄', '楼层': '10层/共14层'}
{'面积': '25 M²', '价格': '2050元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '23 M²', '价格': '2180元/月', '地区': '闵行-莘庄', '楼层': '4层/共6层'}
{'面积': '20 M²', '价格': '1850元/月', '地区': '闵行-莘庄', '楼层': '12层/共16层'}
{'面积': '18 M²', '价格': '1750元/月', '地区': '闵行-莘庄', '楼层': '8层/共14层'}
{'面积': '15 M²', '价格': '2150元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '20 M²', '价格': '2250元/月', '地区': '闵行-古美罗阳', '楼层': '层/共层'}
{'面积': '8 M²', '价格': '1760元/月', '地区': '闵行-莘庄', '楼层': '4层/共17层'}
{'面积': '24 M²', '价格': '2450元/月', '地区': '闵行-古美罗阳', '楼层': '层/共层'}
{'面积': '27 M²', '价格': '3553元起/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '20 M²', '价格': '1650元/月', '地区': '闵行-莘庄', '楼层': '12层/共14层'}
{'面积': '18 M²', '价格': '1700元/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '25 M²', '价格': '1800元/月', '地区': '闵行-莘庄', '楼层': '2层/共18层'}
{'面积': '11 M²', '价格': '2100元/月', '地区': '闵行-莘庄', '楼层': '7层/共17层'}
{'面积': '27 M²', '价格': '3553元起/月', '地区': '闵行-莘庄', '楼层': '3层/共6层'}
{'面积': '18 M²', '价格': '1600元/月', '地区': '闵行-莘庄', '楼层': '12层/共14层'}
{'面积': '16 M²', '价格': '2130元/月', '地区': '闵行-莘庄', '楼层': '11层/共11层'}
{'面积': '15 M²', '价格': '1200元/月', '地区': '闵行-莘庄', '楼层': '1层/共未知层'}
{'面积': '91 M²', '价格': '7090元/月', '地区': '闵行-莘庄', '楼层': '4层/共11层'}
{'面积': '23 M²', '价格': '1800元/月', '地区': '闵行-莘庄', '楼层': '14层/共18层'}
{'面积': '20 M²', '价格': '2020元/月', '地区': '闵行-莘庄', '楼层': '5层/共6层'}
{'面积': '15 M²', '价格': '1930元/月', '地区': '闵行-莘庄', '楼层': '8层/共14层'}
{'面积': '15 M²', '价格': '2230元/月', '地区': '闵行-莘庄', '楼层': '5层/共14层'}
{'面积': '21 M²', '价格': '2460元/月', '地区': '闵行-莘庄', '楼层': '5层/共14层'}

Process finished with exit code 0

 

你可能感兴趣的:(Python爬虫系列(2))