爬取網站小豬短租的少量資訊及詳細介紹--爬蟲案例篇
阿新 • • 發佈:2018-11-07
#!/usr/bin/env python # -*- coding:utf-8 -*- # @Time : 18-10-10 下午9:21 import requests #匯入requests包;發請求網頁 from bs4 import BeautifulSoup #匯入bs4包;解析網頁 import time #匯入time包 時間作用本文為:睡眠時間 headers ={ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' }#加入請求頭 def sex_xiebie (class_name): #定義一個性別函式 if class_name == ['member_ico1']: #通過發f12,性別為女的型別為:member_ico1 return '女' else: return '男' #通過if方法判斷性別為女還是男,因為男的也有一個型別,可以看看 def get_links(url): #定義一個網頁函式 wb_data = requests.get(url,headers=headers) #獲取詳細頁面的連結 soup = BeautifulSoup(wb_data.text,'lxml') #解析獲取網頁 links = soup.select('#page_list > ul > li > a') #links為url列表 for link in links: href = link.get("href") get_info(href) #迴圈url,挨個呼叫get_info()函式 def get_info(url): #定義獲取詳細的網頁的 wb_data =requests.get(url,'headers=headers') soup = BeautifulSoup(wb_data.text,'lxml') #解析網頁,獲取引數資訊 tittles = soup.select('div.pho_info > h4') addresses = soup.select('span.pr5') prices = soup.select('#pricePart > div.day_l > span') imgs = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > a > img') names = soup.select('#floatRightBox > div.js_box.clearfix > div.w_240 > h6 > a') sexs = soup.select('#floatRightBox > div.js_box.clearfix > div.member_pic > div') #通過selector方法尋找想找的資訊 for tittle, address, price, img, name, sex in zip(tittles,addresses,prices,imgs,names,sexs): data = { '主題':tittle.get_text().strip(), '地址':address.get_text().strip(), '價格':price.get_text(), '圖片':img.get("src"), '名稱':name.get_text(), '性別':sex(sex.get("class")) } print(data) #解析了該網頁,並獲取該網頁的資訊,通過字典的資訊列印 if __name__ == '__main__': #主程式的入口 urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(number) for number in range(1,16)] #小豬短租可以看到下面的網址有頁面頁面數,所以就可以構造url #構造多頁url,構造前15頁 for single_url in urls: get_links(single_url) #迴圈呼叫get_links()函式 time.sleep(3) #每次迴圈一次,讓爬蟲暫停3秒,防止爬蟲失敗