1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import requests 4 from bs4 import BeautifulSoup 5 import pandas 6 def gethousedetail(url): 7 info ={} 8 res = requests.get(url) 9 soup = BeautifulSoup(res.text,'html.parser') 10 info['title']=soup.select('title')[0].text.strip() 11 info['price']=soup.select('.zongjia1 .red20b')[0].text.strip() 12 for dd in soup.select('dd'): 13 if ':' in dd.text.strip(): 14 k,v = dd.text.strip().split(':') 15 info[k]=v 16 return info 17 res = requests.get('http://esf.sh.fang.com/') 18 domain = 'http://esf.sh.fang.com' 19 soup = BeautifulSoup(res.text,'html.parser') 20 houseary = [] 21 for house in soup.select('.houseList dl'): 22 urls = domain + house.select('.title a')[0]['href'] 23 houseary.append(gethousedetail(urls)) 24 25 df =pandas.DataFrame(houseary) 26 df.to_excel('house.xlsx',index=False)