Python爬蟲系列-小豬短租

爬完木鳥短租后開始攻克小豬。小豬的網(wǎng)頁結(jié)構和木鳥很像膘流,我寫的爬取
計劃和學習點是:

1.城市數(shù)目封裝函數(shù)
2.獲得城市列表
3.在城市列表循環(huán),爬取城市數(shù)目
4.寫入excel表。

0.png

第一步進行的很順利店溢,按部就班的用chrome在小豬這里找到單個城市的房源數(shù),copy xpath得到鏈接委乌。小豬的房源數(shù)沒有木鳥的準確床牧,不過也算數(shù)吧。

但在城市列表這里就遇到坑了遭贸。小豬的城市列表不算難找(前提是你知道在JS找的話)戈咳,但是xz.citys就是一個list,還真不知道怎么用json取壕吹。

1.png

yaung說直接copy過來著蛙,然后調(diào)用就好了。我覺得這樣很搬磚耳贬,但是大神說踏堡,請求加解析也是很耗費資源的。
好吧咒劲,然后程序里就有了一百多行的一個list表顷蟆。貢獻了整個程序體積的3/4。當然這里可以寫成一個模塊調(diào)用缎患,不過我還沒有練習慕的。
然后每一行是一個城市也是一個循環(huán),在循環(huán)里直接a=city[x]這樣調(diào)用就好了挤渔。

到了這步終于把整個代碼寫好了肮街,但是運行報錯。我看了又看覺得問題還是在于函數(shù)不熟判导,前面定義的函數(shù)后面調(diào)用的不對嫉父。雖然知道錯在哪里但是改來改去,連全局變量global都用上了眼刃。
自己又垂死掙扎了了大半個小時后讓yaung看看绕辖,大神用了8分鐘就改完了,真是小淚心酸啊~拿到之后對比一下擂红,還好仪际,主要就是改了三個地方:

  1. 定義鏈接這里,沒有寫format,表達不完整树碱。
url = 'http://{city_temp}.xiaozhu.com/?startDate=2017-06-06&endDate=2017-06-08'.format(city_temp=city_temp)
  1. 因為有運用模塊(我的理解是前面的函數(shù))肯适,所以要加上這個語句,先寫下這個條件語句再開始城市列表循環(huán)成榜。
if __name__ == '__main__':

3.將先前定義的函數(shù)框舔,所取得的城市房間數(shù) 賦予新的變量city_number,
在我的原稿中就是get_city_room_num(city_code)赎婚,最先報錯也是這里刘绣。大概最嚴重的錯誤也是這里。(比起上次連個json都看不懂挣输,這時候感覺已經(jīng)進步了...)

city_number = get_city_room_num(city_code)

然后就運行出來了纬凤!拿到結(jié)果一看,很多很奇怪的數(shù)據(jù)撩嚼,比如興安這個我都搞不懂在哪個省的地方移斩,居然有3000+房源。然后也有很多城市的數(shù)據(jù)是空白的绢馍。再嘗試了幾下,原來雖然城市列表的拼音縮略和實際找房的url不一樣肠套。
比如xa在城市列表中是興安舰涌,但xa.xiaozhu.com就代表了西安,所以房源才那么多你稚。
寫程序的人思路系這樣:你搜索“杭州”瓷耙,城市列表指向hz,但是實際的url可以是hz.xiaozhu.com刁赖,也可以是hangzhou.xiaozhu.com搁痛。然后還有些例外,比如興安/西安這個宇弛。
又試了一下鸡典,用城市全拼也是可以找到鏈接的,比如xian.xiaozhu.com就肯定不會錯枪芒。
所以在城市循環(huán)中彻况,把city_code從city[0]改為[2],再帶入url中舅踪,爬到的數(shù)據(jù)就正確多了纽甘。

完整代碼如下:

# coding:utf-8
import random

import requests
from lxml import etree


def getReqHeaders():  # 功能:隨機獲取HTTP_User_Agent
    user_agents = ["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"]
    user_agent = random.choice(user_agents)
    req_headers = {'User-Agent': user_agent}
    return req_headers


def get_city_room_num(city_temp):
    url = 'http://{city_temp}.xiaozhu.com/?startDate=2017-06-06&endDate=2017-06-08'.format(city_temp=city_temp)
    html = requests.get(url, headers=getReqHeaders()).content
    selector = etree.HTML(html)
    return selector.xpath('//*[@id="searchTotal"]/text()')

#copy city_list
city_list = [["bj", "北京", "beijing", "bj", "2079", "beijing", "北京", "", "", 12],
             ["sh", "上海", "shanghai", "sh", "910", "shanghai", "上海", "", "", 13]]#以下略

city_dict = []
if __name__ == '__main__':
    for city in city_list:
        item = {}
        city_code = city[2]
        city_name = city[1]
        city_number = get_city_room_num(city_code)
        item['city'] = city_code
        item['city_name'] = city_name
        item['number'] = city_number
        # item['province']=province
        city_dict.append(item)
        print(item)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抽碌,隨后出現(xiàn)的幾起案子悍赢,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件左权,死亡現(xiàn)場離奇詭異皮胡,居然都是意外死亡,警方通過查閱死者的電腦和手機涮总,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門胸囱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瀑梗,你說我怎么就攤上這事烹笔。” “怎么了抛丽?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵谤职,是天一觀的道長。 經(jīng)常有香客問我亿鲜,道長允蜈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任蒿柳,我火速辦了婚禮饶套,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘垒探。我一直安慰自己妓蛮,他們只是感情好,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布圾叼。 她就那樣靜靜地躺著蛤克,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夷蚊。 梳的紋絲不亂的頭發(fā)上构挤,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機與錄音惕鼓,去河邊找鬼筋现。 笑死,一個胖子當著我的面吹牛箱歧,可吹牛的內(nèi)容都是我干的夫否。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼叫胁,長吁一口氣:“原來是場噩夢啊……” “哼凰慈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起驼鹅,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤微谓,失蹤者是張志新(化名)和其女友劉穎森篷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豺型,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡仲智,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了姻氨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钓辆。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肴焊,靈堂內(nèi)的尸體忽然破棺而出前联,到底是詐尸還是另有隱情,我是刑警寧澤娶眷,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布似嗤,位于F島的核電站,受9級特大地震影響届宠,放射性物質(zhì)發(fā)生泄漏烁落。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一豌注、第九天 我趴在偏房一處隱蔽的房頂上張望伤塌。 院中可真熱鬧,春花似錦轧铁、人聲如沸寸谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至他爸,卻和暖如春聂宾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诊笤。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工系谐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讨跟。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓纪他,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晾匠。 傳聞我的和親對象是個殘疾皇子茶袒,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容