Python實(shí)戰(zhàn)計劃學(xué)習(xí)筆記0702

實(shí)戰(zhàn)計劃第五天笛求,抓了58同城陡厘。

最終成果是這樣的:

Paste_Image.png

我的代碼:

#!/usr/bin/env python    #告訴計算機(jī)執(zhí)行程序在系統(tǒng)環(huán)境變量中的名字些椒,詳細(xì)位置在環(huán)境變量中設(shè)置好了
#-*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import time
import requests

def get_info(link):
    wb_detail = requests.get(link)
    soup = BeautifulSoup(wb_detail.text, 'lxml')
    # nth-of-child(3)改成nth-of-type(3)就可以唯一爬去本頁面的信息了 conditions 和 areas爬出來后需要去掉特殊符號
    types = soup.select('#header > div.breadCrumb.f12 > span:nth-of-type(3) > a')
    titles = soup.select('#content > div.person_add_top.no_ident_top > div.per_ad_left > div.col_sub.mainTitle > h1')
    dates = soup.select('#index_show > ul.mtit_con_left.fl > li.time')
    prices = soup.select(
        '#content > div.person_add_top.no_ident_top > div.per_ad_left > div.col_sub.sumary > ul > li:nth-of-type(1) > div.su_con > span')
    conditions = soup.select(
        '#content > div.person_add_top.no_ident_top > div.per_ad_left > div.col_sub.sumary > ul > li:nth-of-type(2) > div.su_con > span')
    areas = soup.select(
        '#content > div.person_add_top.no_ident_top > div.per_ad_left > div.col_sub.sumary > ul > li:nth-of-type(3) > div.su_con > span')

    for type, title, date, price, condition, area in zip(types, titles, dates, prices, conditions, areas):
        data = {
            'type' : type.get_text(),
            'title' : title.get_text(),
            'data' : date.get_text(),
            'price' : price.get_text(),
            'conditions' : list(condition.stripped_strings),   #list()用法
            'area' : list(areas[0].stripped_strings) if soup.find_all('span', 'c_25d') else None,
            'view' : get_view(link)
        }
        print(data)

def get_view(url):  #獲取瀏覽量
    infoid = url.split('?')[0].split('/')[-1].strip('x.shtml')
    api = 'http://jst1.58.com/counter?infoid={}'.format(infoid)

    '''這里要加上header信息'''

    headers = {'User-Agent':r'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36',
               'Cookie':r'id58=c5/ns1ct99sKkWWeFSQCAg==; city=bj; 58home=bj; ipcity=yiwu%7C%u4E49%u4E4C%7C0; als=0; myfeet_tooltip=end; bj58_id58s="NTZBZ1Mrd3JmSDdENzQ4NA=="; sessionid=021b1d13-b32e-407d-a76f-924ec040579e; bangbigtip2=1; 58tj_uuid=0ed4f4ba-f709-4c42-8972-77708fcfc553; new_session=0; new_uv=1; utm_source=; spm=; init_refer=; final_history={}; bj58_new_session=0; bj58_init_refer=""; bj58_new_uv=1'.format(str(infoid)),
               'Accept': '*/*',
               'Accept-Encoding': 'gzip, deflate, sdch',
               'Accept-Language': 'zh-CN,zh;q=0.8',
               'Cache-Control': 'max-age=0',
               'Connection': 'keep-alive',
               'Host':'jst1.58.com',
               'Referer':r'http://bj.58.com/pingbandiannao/{}x.shtml'.format(str(infoid))
               }
    js = requests.get(api,headers = headers)
    #js = requests.get(api)
    view = js.text.split('=')[-1]
    return view

def get_links_info(page):
    urls = ['http://bj.58.com/pbdn/1/pn{}'.format(str(i)) for i in range(1,page)]   #必須是個list
    for url in urls:
        wb_data = requests.get(url)
        soup = BeautifulSoup(wb_data.text,'lxml')
        schemes = soup.select('#infolist tr td.t a')   #為什么寫成這樣就可以爬取了??
        print(schemes)
        time.sleep(2)



        for scheme in schemes:
            link = scheme.get('href')
            if link[:17] == 'http://bj.58.com/':     #用這種select有效連接
                get_info(link)



get_links_info(20)

總結(jié)和問題

  • list()用法
  • CSSpath沒有>
  • 字典寫文件語句
  • open路徑前面加r
  • 確定瀏覽量代碼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乃摹,一起剝皮案震驚了整個濱河市禁漓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孵睬,老刑警劉巖播歼,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掰读,居然都是意外死亡秘狞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蹈集,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烁试,“玉大人,你說我怎么就攤上這事拢肆〖跸欤” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵郭怪,是天一觀的道長辩蛋。 經(jīng)常有香客問我,道長移盆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任伤为,我火速辦了婚禮咒循,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绞愚。我一直安慰自己叙甸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布位衩。 她就那樣靜靜地躺著裆蒸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糖驴。 梳的紋絲不亂的頭發(fā)上僚祷,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音贮缕,去河邊找鬼辙谜。 笑死,一個胖子當(dāng)著我的面吹牛感昼,可吹牛的內(nèi)容都是我干的装哆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜕琴!你這毒婦竟也來了萍桌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凌简,失蹤者是張志新(化名)和其女友劉穎上炎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體号醉,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡反症,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了畔派。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铅碍。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖线椰,靈堂內(nèi)的尸體忽然破棺而出胞谈,到底是詐尸還是另有隱情,我是刑警寧澤憨愉,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布烦绳,位于F島的核電站,受9級特大地震影響配紫,放射性物質(zhì)發(fā)生泄漏径密。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一躺孝、第九天 我趴在偏房一處隱蔽的房頂上張望享扔。 院中可真熱鬧,春花似錦植袍、人聲如沸惧眠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氛魁。三九已至,卻和暖如春厅篓,著一層夾襖步出監(jiān)牢的瞬間秀存,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工羽氮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留应又,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓乏苦,卻偏偏與公主長得像株扛,于是被迫代替她去往敵國和親尤筐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,118評論 25 707
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程洞就,因...
    小菜c閱讀 6,409評論 0 17
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,575評論 1 118
  • 晚上就要開學(xué)典禮了盆繁,內(nèi)心止不住還那么激動了一下下. 但最近偶爾也會蹦出一兩個問題,不怕您笑旬蟋,問題啊還都相當(dāng)之俗套油昂,...
    Gouwal閱讀 152評論 0 0
  • 日常生活中你是否也在苦惱,回到家看到家里亂糟糟的原本就不是很好的心情更糟糕了倾贰,又或者是時常為找一樣小東西花費(fèi)不少時...
    荒了就像白活了一場閱讀 300評論 0 2