python:爬取贝壳租房100页数据
import requests
from bs4 import BeautifulSoup
import csv,re
def get_one_page(page):
url = f'https://cd.zu.ke.com/zufang/pg{page}/#contentList'
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print(response)
return None
def analysis_data(html):
"""
解析一页数据
:param html:
:return:
"""
soup = BeautifulSoup(html,'lxml')
house_div = soup.select('.content__list>div')
all_house =[]
for div in house_div:
info = div.select_one('.content__list--item--des').text
info = re.sub(r's+', '',info).split('/')
address = info[-5]
area = float(info[-4][:-1])
house_type = info[-2]
region = address.split('-')[0]
price = div.select_one('.content__list--item-price').text
price = int(re.match(r'd+',price).group())
all_house.append([region,address,area,house_type,price])
# print(all_house)
with open('files/贝壳租房.csv','a',encoding='utf-8',newline='') as f:
writer = csv.writer(f)
if page == 1:
writer.writerow(['地区','地址','面积()','户型价格(元/月)'])
else:
writer.writerows(all_house)
if __name__ == '__main__':
for page in range(1,3):
result = get_one_page(page)
analysis_data(result)