实战—爬取网站链家租房信息
发布时间
阅读量:
阅读量
1.明确目标:拿下该页面的28个租房链接

2.分析租房页面源码

3.导入第三方库
C:\Users\Administrator>pip install requests
C:\Users\Administrator>pip install bs4
AI助手
4.获取页面每个租房信息

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import requests
from bs4 import BeautifulSoup
links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
respose = requests.get(links_url)
# print(respose) #打印响应码
# print(respose.text) #打印页面内容
# 这里的"html.parser"是解析器,取决于代码编写环境
soup = BeautifulSoup(respose.text, "html.parser")
# print(soup) #用BeautifulSoup获取页面内容
#这里的class_是为了与python中的关键字class区分
links_p = soup.find_all('p', class_='content__list--item--title twoline')
links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
# for循环实现列表中的内容换行输出
for lin in links:
print(lin)
AI助手
成功租房获取链接:
D:\software\Python37-32\python.exe D:/code/python/python基础/爬取网站链家租房信息.py
https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html
https://nc.lianjia.com/zufang/zufang/NC2420193010059837440.html
https://nc.lianjia.com/zufang/zufang/NC2374575006383341568.html
...
AI助手
以上代码可以封装成如下函数:
links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
def get_links(links_url):
respose = requests.get(links_url)
soup = BeautifulSoup(respose.text, "html.parser")
links_p = soup.find_all('p', class_='content__list--item--title twoline')
links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
for lin in links:
print(lin)
return links
get_links(links_url)
AI助手
5.同理对每个租房链接进行提取信息
house_url = 'https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html'
respose = requests.get(house_url)
soup = BeautifulSoup(respose.text, "html.parser")
AI助手
注意到这两行代码与已有的封装好的函数内部的逻辑完全一致的情况下,这提示我们应当对这段重复使用的逻辑进行优化处理,并将其封装为一个独立的函数模块。
# 获取页面中的内容
def get_page(url):
respose = requests.get(url)
soup = BeautifulSoup(respose.text, "html.parser")
return soup
# links_url = 'https://nc.lianjia.com/zufang/honggutan1/rt200600000002rp1/'
# 获取每一个租房链接
def get_links(links_url):
soup = get_page(links_url)
links_p = soup.find_all('p', class_='content__list--item--title twoline')
links = ['https://nc.lianjia.com/zufang' + p.a.get('href') for p in links_p]
for lin in links:
print(lin)
return links
# get_links(links_url)
AI助手


# 先对一个租房页面提取信息
house_url = 'https://nc.lianjia.com/zufang/zufang/NC2350487531726323712.html'
soup = get_page(house_url)
# 这里的div下的content__aside--title属性取到了价格之外的内容,使用切片取出想要的值
price = soup.find('div', class_='content__aside--title').text[1:10]
print(price)
info = soup.find_all('ul', class_='content__aside__list')[0].text
print(info)
AI助手
执行结果:
D:\software\Python37-32\python.exe D:/code/python/python基础/爬取网站链家租房信息.py
600元/月
租赁方式:合租
房屋类型:2室2厅1卫 81㎡
朝向楼层:南/北 高楼层/29层
AI助手
由于该网站存反爬机制,效果并不理想:

请阐述具体的步骤如下:搭建数据库架构、数据表结构及相关字段配置。通过Pymysql模块实现与数据库的连接,并即可实现爬取内容的导入至数据库中。
全部评论 (0)
还没有任何评论哟~
