小组分工:李鹏博 代码;刘晨 项目说明报告; 钱增 展示
总体思路:分别编写函数来获取楼房信息:区域名、楼盘名称、具体地址、类型、售卖状态、房屋户型特点,评分、评价数、价格以及联系电话。最后再调用以上函数将其信息存于csv文件。
首先应项目要求,我们需要用到requests库于请求网页,csv库于保存信息于文件,bs4库于解析标签代码。
import requests
import csv
from bs4 import BeautifulSoup
随后以函数的形式来进行程序的编写。
Part1:获取区域名
def Quyuname(url):
"""
获取所在省市的各区域名
:param url:
:return quyunamelist:
"""
response = requests.get(url)
page = BeautifulSoup(response.text,"html.parser")
mainpart = page.find("li", id="quyu_name")
quyuname = mainpart.find_all("a")[1:]
quyunamelist = {}
for h in quyuname:
quyunamelist[h.text] = []
return quyunamelist
首先调用requests库向网页发起请求并将内容存为response;接着调用bs4库将上述获得的名为response.text的文档进行解析,这里的html.parser是解析文档时所用的解析器。然后运用bs4中的find()语法匹配指定标签为“li”框架下属性为id=“quyu_name”的内容存于mainpart。接着用find_all()匹配“a”标签并将其后的区域名存入quyuname(find_all自动返回列表类型)。最后遍历quyuname将其存入字典中。
Part2:获取各楼盘所在区域和具体地址
def addrs(i):
"""
获取单一楼盘所在区域和具体地址
:param i:
:return address,Address:
"""
addrerss = i.find("div", class_="address").find("a")
try:
address = addrerss.find("span",class_="sngrey").text.replace("\t","").replace("\n","").strip("[").strip("]")
Address = addrerss["title"]
except:
Address = addrerss["title"]
address = addrerss.text.replace("\t","