国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

<pre id="ldy9o"></pre>
  • <ins id="ldy9o"><label id="ldy9o"></label></ins><big id="ldy9o"><sup id="ldy9o"><thead id="ldy9o"></thead></sup></big>
    • <nobr id="ldy9o"></nobr>
      <strong id="ldy9o"><tfoot id="ldy9o"><strong id="ldy9o"></strong></tfoot></strong>

      看我如何抓取二手房?jī)r(jià)數(shù)據(jù)

      開發(fā) 后端
      上次為大家介紹了如何通過 Python 抓取新房樓盤價(jià)格信息,很多朋友都在問,那二手房最新的價(jià)格信息要如何抓取呢?好!今天就再來為大家講一講,二手房的房?jī)r(jià)信息要怎么抓取。

       上次為大家介紹了如何通過 Python 抓取新房樓盤價(jià)格信息,很多朋友都在問,那二手房最新的價(jià)格信息要如何抓取呢?好!今天就再來為大家講一講,二手房的房?jī)r(jià)信息要怎么抓取。

      [[324858]]

      模塊安裝

      同上次新房一樣,這里需要安裝以下模塊(當(dāng)然如果已安裝就不用再裝了):

       

      1. # 安裝引用模塊 
      2. pip3 install bs4 
      3. pip3 install requests 
      4. pip3 install lxml 
      5. pip3 install numpy 
      6. pip3 install pandas 

      好了,安裝完成后,就可以開始寫代碼了。至于配置請(qǐng)求頭和代理IP地址的代碼,上次介紹新房已經(jīng)說過了,這里不再贅述,下面直接上抓取代碼。

      二手房?jī)r(jià)數(shù)據(jù)對(duì)象

      在這里我們將二手房的房?jī)r(jià)信息,創(chuàng)建成一個(gè)對(duì)象,后續(xù)我們只要將獲取到的數(shù)據(jù)保存成對(duì)象,再處理就會(huì)方便很多。SecHouse 對(duì)象代碼如下所示:

       

      1. # 二手房信息對(duì)象 
      2. class SecHouse(object): 
      3.     def __init__(self, district, area, name, price, desc, pic): 
      4.         self.district = district 
      5.         self.area = area 
      6.         self.price = price 
      7.         self.name = name 
      8.         self.desc = desc 
      9.         self.pic = pic 
      10.     def text(self): 
      11.         return self.district + "," + \ 
      12.                 self.area + "," + \ 
      13.                 self.name + "," + \ 
      14.                 self.price + "," + \ 
      15.                 self.desc + "," + \ 
      16.                 self.pic 

      獲取二手房?jī)r(jià)信息并保存

      準(zhǔn)備好了,下面我們依然以貝殼為例,批量爬取其北京地區(qū)二手房數(shù)據(jù),并保存到本地。這里我主要想說的是如何抓取數(shù)據(jù)過程,所以這里依然就保存成最簡(jiǎn)單的 txt 文本格式。如果想保存到數(shù)據(jù)庫,可以自行修改代碼進(jìn)行保存數(shù)據(jù)庫處理。

      獲取區(qū)縣信息

      我們?cè)谧ト《址啃畔r(shí),肯定想知道這個(gè)房源所在地區(qū),所以這里我寫了個(gè)方法把北京市所有區(qū)縣信息抓取下來,并臨時(shí)保存至列表變量里,以備后續(xù)程序中使用,代碼如下:

       

      1. # 獲取區(qū)縣信息 
      2. def get_districts(): 
      3.     # 請(qǐng)求 URL 
      4.     url = 'https://bj.ke.com/xiaoqu/' 
      5.     headers = create_headers() 
      6.     # 請(qǐng)求獲取數(shù)據(jù) 
      7.     response = requests.get(url, timeout=10, headers=headers) 
      8.     html = response.content 
      9.     root = etree.HTML(html) 
      10.     # 處理數(shù)據(jù) 
      11.     elements = root.xpath('///div[3]/div[1]/dl[2]/dd/div/div/a'
      12.     en_names = list() 
      13.     ch_names = list() 
      14.     # 循環(huán)處理對(duì)象 
      15.     for element in elements: 
      16.         link = element.attrib['href'
      17.         en_names.append(link.split('/')[-2]) 
      18.         ch_names.append(element.text) 
      19.  
      20.     # 打印區(qū)縣英文和中文名列表 
      21.     for indexname in enumerate(en_names): 
      22.         chinese_city_district_dict[name] = ch_names[index
      23.     return en_names 

      獲取地區(qū)板塊

      除了上面要獲取區(qū)縣信息,我們還應(yīng)該獲取比區(qū)縣更小的板塊區(qū)域信息,同樣的區(qū)縣內(nèi),不同板塊地區(qū)二手房的價(jià)格等信息肯定不一樣,所以板塊對(duì)于我們來說也很重要,具有一次參考價(jià)值。獲取板塊信息代碼如下:

       

      1. # 獲取某個(gè)區(qū)縣下所有板塊信息 
      2. def get_areas(district): 
      3.     # 請(qǐng)求的 URL 
      4.     page = "http://bj.ke.com/xiaoqu/{0}".format(district) 
      5.     # 板塊列表定義 
      6.     areas = list() 
      7.     try: 
      8.         headers = create_headers() 
      9.         response = requests.get(page, timeout=10, headers=headers) 
      10.         html = response.content 
      11.         root = etree.HTML(html) 
      12.         # 獲取標(biāo)簽信息 
      13.         links = root.xpath('//div[3]/div[1]/dl[2]/dd/div/div[2]/a'
      14.  
      15.         # 針對(duì)list進(jìn)行處理 
      16.         for link in links: 
      17.             relative_link = link.attrib['href'
      18.             # 最后"/"去掉 
      19.             relative_link = relative_link[:-1] 
      20.             # 獲取最后一節(jié)信息 
      21.             area = relative_link.split("/")[-1] 
      22.             # 去掉區(qū)縣名稱,以防止重復(fù) 
      23.             if area != district: 
      24.                 chinese_area = link.text 
      25.                 chinese_area_dict[area] = chinese_area 
      26.                 # 加入板塊信息列表 
      27.                 areas.append(area) 
      28.         return areas 
      29.     except Exception as e: 
      30.         print(e) 

      獲取二手房信息并保存

       

      1. # 創(chuàng)建文件準(zhǔn)備寫入 
      2. with open("sechouse.txt""w", encoding='utf-8'as f: 
      3.     # 定義變量 
      4.     total_page = 1 
      5.     # 初始化 list 
      6.     sec_house_list = list() 
      7.     # 獲取所有區(qū)縣信息 
      8.     districts = get_districts() 
      9.     # 循環(huán)處理區(qū)縣 
      10.     for district in districts: 
      11.         # 獲取某一區(qū)縣下所有板塊信息 
      12.         arealist = get_areas(district) 
      13.         # 循環(huán)遍歷所有板塊下的小區(qū)二手房信息 
      14.         for area in arealist: 
      15.             # 中文區(qū)縣 
      16.             chinese_district = chinese_city_district_dict.get(district, ""
      17.             # 中文版塊 
      18.             chinese_area = chinese_area_dict.get(area, ""
      19.             # 請(qǐng)求地址 
      20.             page = 'http://bj.ke.com/ershoufang/{0}/'.format(area) 
      21.             headers = create_headers() 
      22.             response = requests.get(page, timeout=10, headers=headers) 
      23.             html = response.content 
      24.             # 解析 HTML 
      25.             soup = BeautifulSoup(html, "lxml"
      26.  
      27.             # 獲取總頁數(shù) 
      28.             try: 
      29.                 page_box = soup.find_all('div', class_='page-box')[0] 
      30.                 matches = re.search('.*data-total-count="(\d+)".*', str(page_box)) 
      31.                 # 獲取總頁數(shù) 
      32.                 total_page = int(math.ceil(int(matches.group(1)) / 10)) 
      33.             except Exception as e: 
      34.                 print(e) 
      35.  
      36.             print(total_page) 
      37.             # 設(shè)置請(qǐng)求頭 
      38.             headers = create_headers() 
      39.             # 從第一頁開始,遍歷到最后一頁 
      40.             for i in range(1, total_page + 1): 
      41.                 # 請(qǐng)求地址 
      42.                 page = 'http://bj.ke.com/ershoufang/{0}/pg{1}'.format(area,i) 
      43.                 print(page) 
      44.                 # 獲取返回內(nèi)容 
      45.                 response = requests.get(page, timeout=10, headers=headers) 
      46.                 html = response.content 
      47.                 soup = BeautifulSoup(html, "lxml"
      48.  
      49.                 # 獲得二手房查詢列表 
      50.                 house_elements = soup.find_all('li', class_="clear"
      51.                 # 遍歷每條信息 
      52.                 for house_elem in house_elements: 
      53.                     # 價(jià)格 
      54.                     price = house_elem.find('div', class_="totalPrice"
      55.                     # 標(biāo)題 
      56.                     name = house_elem.find('div', class_='title'
      57.                     # 描述 
      58.                     desc = house_elem.find('div', class_="houseInfo"
      59.                     # 圖片地址 
      60.                     pic = house_elem.find('a', class_="img").find('img', class_="lj-lazy"
      61.  
      62.                     # 清洗數(shù)據(jù) 
      63.                     price = price.text.strip() 
      64.                     name = name.text.replace("\n"""
      65.                     desc = desc.text.replace("\n""").strip() 
      66.                     pic = pic.get('data-original').strip() 
      67.  
      68.                     # 保存二手房對(duì)象 
      69.                     sec_house = SecHouse(chinese_district, chinese_area, name, price, desc, pic) 
      70.                     print(sec_house.text()) 
      71.                     sec_house_list.append(sec_house) 
      72.             # 循環(huán)遍歷將信息寫入 txt 
      73.             for sec_house in sec_house_list: 
      74.                 f.write(sec_house.text() + "\n"

      到這里代碼就寫好了,現(xiàn)在我們就可以通過命令 python sechouse.py 運(yùn)行代碼進(jìn)行數(shù)據(jù)抓取了。抓取的結(jié)果我們可以打開當(dāng)前目錄下 sechouse.txt 文件查看,結(jié)果如下圖所示:

       

      總結(jié)本文為大家介紹了如何通過 Python 將房產(chǎn)網(wǎng)上的二手房數(shù)據(jù)批量抓取下來,經(jīng)過一段時(shí)間的抓取,我們就可以將抓取的結(jié)果進(jìn)行對(duì)比分析,看看二手房?jī)r(jià)最近是漲還是跌?如果喜歡我們的文章,請(qǐng)關(guān)注收藏再看。

      責(zé)任編輯:華軒 來源: Python技術(shù)
      相關(guān)推薦

      2018-10-22 13:10:43

      分析Python房?jī)r(jià)

      2019-12-19 15:56:10

      Python數(shù)據(jù)工具

      2018-08-21 21:13:32

      爬蟲Python住房

      2020-06-05 19:19:03

      蘋果促銷商家

      2018-10-29 15:41:16

      二手硬件處理器

      2013-03-19 14:25:36

      2011-06-08 21:41:14

      噴墨打印機(jī)推薦

      2020-10-27 15:18:39

      央行數(shù)字人民幣穆長(zhǎng)春

      2020-03-30 21:36:57

      硬件CPU顯卡

      2023-07-12 07:06:23

      2023-07-11 06:32:03

      2022-06-29 09:24:23

      顯卡崩盤價(jià)格

      2012-08-31 10:02:34

      2020-06-04 18:30:06

      二手硬件CPU主板

      2018-12-04 16:44:36

      RX比特幣網(wǎng)站

      2016-01-29 10:12:01

      IT168

      2018-01-08 11:24:38

      云計(jì)算標(biāo)準(zhǔn)和應(yīng)用大會(huì)轉(zhuǎn)轉(zhuǎn)58同城

      2024-09-26 09:38:06

      2024-09-18 15:15:35

      點(diǎn)贊
      收藏

      51CTO技術(shù)棧公眾號(hào)

      最新中文字幕在线视频| 欧美另类极品videosbestfree| 黄色三级视频片| 欧美大黑bbbbbbbbb在线| 91九色露脸| 97影院在线观看| 精品日韩在线播放| 久久国内精品一国内精品| 成色在线视频| 欧美mv日韩mv国产网站| 麻豆精品网站| 久久99久久精品| 日本10禁啪啪无遮挡免费一区二区 | 亚洲国产一区二区精品专区| 免费xxxx性欧美18vr| 天天综合亚洲| 久久av一区| 成人视屏免费看| 亚洲a一区二区| 日韩欧美一区在线观看| 欧美疯狂做受xxxx高潮| 国产美女久久精品香蕉69| 一区二区在线观| 日本福利视频| 日韩脚交footjobhdboots| 亚洲电影男人天堂| 日本女人一区二区三区| 亚洲欧美日本在线| 永久免费毛片在线播放不卡| 国产精品久久久久久亚洲调教| 亚洲色婷婷久久精品av蜜桃| 国产黄色免费电影| 中文在线资源| 亚洲欧美综合| 99国内精品久久| 欧美一级片在线观看| 国产精品视频色| 精品久久一二三| 在线不卡日本v二区707| 最新精品国偷自产在线| 成人h动漫精品| 亚洲精品电影在线| 国产一区二区精品在线| 日本韩国福利视频| 国产精品白丝久久av网站| 久久99九九99精品| 欧美精品亚洲一区二区在线播放| 成人欧美一区二区三区黑人| 最新视频 - x88av| 好吊日视频在线观看| 999国产精品| 国产精品久久三| 在线视频日本亚洲性| 亚洲欧洲国产精品久久| 国产黄色在线免费观看| 91高清一区| 亚洲一卡二卡三卡四卡无卡久久| 久久久久久中文字幕| 尤物网址在线观看| www.亚洲色图.com| 国产亚洲欧美在线| 日韩三级视频中文字幕| 精品久久久三级| 麻豆系列在线观看| 国产在线日韩| 7777女厕盗摄久久久| 九色综合婷婷综合| av色图一区| 在线观看日韩av电影| 欧美蜜桃一区二区三区| 精品日产一区2区三区黄免费| 三级视频网站在线| 国产精品hd| 69堂国产成人免费视频| 中文字幕一区二区三区有限公司| 77thz桃花论族在线观看| 久久电影网站中文字幕| 精品国产欧美一区二区五十路| 国产视频在线视频| 亚洲色图网站| 日韩av有码在线| 国产69精品久久久久久久| 成人影院网站| 99精品视频中文字幕| 91sa在线看| yourporn在线观看中文站| 国产精品大片免费观看| 亚洲精品av在线播放| 久久久久国产一区| 亚洲黄网站黄| 欧美激情va永久在线播放| 欧美男男同志| 91丨九色丨蝌蚪富婆spa| 91色精品视频在线| 91精品xxx在线观看| 色狠狠av一区二区三区| 国内少妇毛片视频| 你懂的国产精品永久在线| 国产一区二区三区视频在线观看| 宅男深夜国产| 91免费在线播放| 国产精品久久九九| 亚洲一区二区电影| 日韩区在线观看| 黄页视频在线观看| 国产一区二区三区精品欧美日韩一区二区三区| 久久久久久成人| av漫画网站在线观看| 五月婷婷色综合| 六月丁香激情网| 久久一区二区三区四区五区 | 亚洲欧美一区二区不卡| 91亚洲精品在线| 91黄色小网站| 亚洲高清不卡在线观看| 米奇777在线欧美播放| 2021国产精品久久精品| 国产一区二区电影| 国产99在线免费| 狠狠综合久久av一区二区蜜桃| 色播久久人人爽人人爽人人片视av| 欧美xxx.com| 亚洲一区二区三区视频在线播放| 男人操女人免费软件| 久久人体av| 国产精品中文有码| 在线免费视频一区二区| 老司机精品福利在线观看| 播放一区二区| 久久综合九色综合欧美就去吻 | 日韩视频永久免费| 九色porny蝌蚪视频在线观看| 国产成人免费高清| 日韩欧美激情一区二区| 西瓜成人精品人成网站| 麻豆国产va免费精品高清在线| 国产资源在线观看| 最新国产精品久久精品| 欧美日韩亚洲国产成人| 亚洲激情网站| 国产不卡av在线| 天堂av一区二区三区在线播放| 亚洲第一精品久久忘忧草社区| 国内av一区二区三区| 欧美日韩国产中文精品字幕自在自线| av在线免费观看国产| 丝袜亚洲另类丝袜在线| 成人黄动漫网站免费| 亚洲国产天堂| 国产一区二区激情| 精品自拍视频| 日韩中文在线中文网在线观看| 日韩经典av| 在线色欧美三级视频| www.欧美| 欧美在线亚洲一区| 伊人精品一区| 欧美一二三视频| 97精品国产福利一区二区三区| 亚洲综合成人婷婷小说| 亚洲精品国产首次亮相| 国产视频在线观看一区| 久久国产日韩| 国产精品青青草| 久久草av在线| 人妻夜夜添夜夜无码av| 国产精品美女久久福利网站| 亚洲 欧美 另类人妖| 午夜一区二区三区在线观看| 国产欧美黑人| 中文字幕久久精品| 日韩电影一区| 欧美国产一区二区在线| 成人免费视频国产在线观看| 欧美福利网站| 亚洲黄在线观看| 精品国产一区二| 97人人模人人爽人人喊38tv| 99精品久久久| 欧美图片激情小说| 色久优优欧美色久优优| 久久精品色图| 在线一区二区视频| 久久青草伊人| 国产成人精品电影| 日韩av中文字幕一区二区| 久久久久久久久久网| 亚洲国产一区二区视频| 97人人爽人人澡人人精品| 国产精品xxxxx| 久久精品99国产精品| 日日摸日日碰夜夜爽av| 精品久久久一区| 99视频这里有精品| 国产精品大全| 国产美女视频91| 色黄视频在线| 欧美成人精品h版在线观看| 先锋亚洲精品| 国产极品美女高潮无套久久久|