母婴网站设计分析,免费建站网站一级123456,图片编辑软件手机版,做乡镇网站#主要用的python库#xff1a;安装必要的库requests#xff1a;用来获取页面信息#xff1b; BeautifulSoup#xff1a;用来获取页面结构的详细信息
#先获取链接#xff0c;再到一个列表#xff0c;进入标签#xff0c;然后到class。。。。。就可以了#xff08;省略安装必要的库requests用来获取页面信息 BeautifulSoup用来获取页面结构的详细信息
#先获取链接再到一个列表进入标签然后到class。。。。。就可以了省略
#安装
import requests
from bs4 import BeautifulSoup
url https://hz.lianjia.com/zufang/
responcerequests.get(url)#获取到页面信息200页面信息存储在text中
#查看页面信息存储位置response.text
responce.text
soup BeautifulSoup(responce.text,lxml)#解析使用lxml格式的文本存储,使文本结构化了
links_div(div,class_pic-panel)##class加下划线是因为class是python里的关键字此class非彼class
#从列表框里生成另一个列表推导式利用列表生成式
links [div.a.get(herf) for div in links_div]
print(links,len(links))##30个链接访问这些链接可以得到详细的租房信息
#links_div[1].a.get(herf)##仅仅提取了这个链接就够了
##上述代码封装成函数,名字为get_links作用为获取下边所有租房页面的链接返回一个链接列表##封装:获取url页面下的内容返回soup对象
def get_page(url):responce request.get(url)soup BeautifulSoup(responce.text, lxml)return soupdef get_links(link_url):#responce requests.get(url) # 获取到页面信息200页面信息存储在text中。已封装成上述函数#soup BeautifulSoup(responce.text, lxml) # 解析使用lxml格式的文本存储,使文本结构化了。已封装成上述函数#调用上述替代上边注释掉的两行的函数soupget_page(link_url)links_div soup.find_all(div,class_pic-panel)links[links_div.a.get(herf) for div in links_div]return linkslinks_urlhttps://hz.lianjia.com/zufang/get_links(links_url)def get_huose_info(huose_url)huose_url https://hz.lianjia.com/zufang/103102641328.html#responce request.get(hour_url)#soup BeautifulSoup(responce.text,lxml)#调用函数soupget_page(huose_url)pricesoup.find(span,class_total).text##直接把价格4500获取出来unitsoup.find(span,class_unit).textunit.str#str函数字符转换工具house_infosoup.find_all(p)#(p,classif)areahuose_info[0].text[3:]#切片工具切片掉标题面积layouthuose_info[1].text[5:]floorhuose_info[2].text[3:]direction house_info[3].text[5:]##地铁没有class说明在获取huose_info时class时多余的trainhuose[4].text[3:]#构建一个字典info{面积:area,价格:price}
封装数据库
DATABASE {host:127.0.0.1,database:Examination,user:root,password:yuping,charset:utf8mb4}
def get_db(setting):return MySQLdb.connect(**settings)
def insert(house_info):values {}*11{}sql_values values.format(huose[价格]huose[面积]huose[价格])sql insert into huose(price,unit,area)values({},).format(sql_values)cursor db.cursor()cursor.execute(sql)db.commit()
huose get_huose_info(https://hz.lianjia.com/zufang/103102641328.html)
db get_db(DATABASE)
insert(db,huose)
for link in links:time.sleep(2)##为了防止访问时间太长加上时间限制print(获取一个房子信息时间成功)huose get_huose_info(link)insert(db,huose)