python3爬虫实战-安居客写字楼信息,学会月入上万理所当然

说起python爬虫,相信大家都觉得很神奇,为什么python爬虫叫做网络蜘蛛,对于这一点,相信大家一定觉得高大神奇,其实爬虫技术这个过程很无聊,但是获取到想要的结果的时候就很开心,那么今天大家就跟随我的脚步进入爬虫的技术领域,话不多说,我们头条号只讲干货!

python3爬虫实战-安居客写字楼信息,学会月入上万理所当然

那么今天就带领大家去爬取安居客这个网站的一些房产数据,今天我们爬取的是关于写字楼的六项数据,那么首先我会一步一步讲解程序的每一步实现的作用,最后会附上完整代码,大家可以拿去自己进行实验,不懂的地方欢迎下方留言或者私信我都可以,有时间就回复!

安居客北京写字楼六项数据爬取

安居客的北京写字楼链接:
https://bj.sydc.anjuke.com/xzl-zu/?from=navigation

具体的代码块以及每一块的作用会在下面详细说明:

# 输入相应的库文件
# requests库用于对网站发送请求,请求成功网站会返回给我们一个响应值
import requests
# BeautifulSoup库从bs4模块导入,用于对网站的响应值进行解析
from bs4 import BeautifulSoup
# csv库用于把爬取的文件放进csv文件内
import csv
# time库有很多用法,这里是用来防止反爬机制
import time
# 由于网站信息页面有很多页数,我们这里设置爬取100页
urls = ['https://bj.sydc.anjuke.com/xzl-zu/p{}/'.format(number)for number in range(1, 101)]
# 假如请求头,模拟浏览器登录请求,防止被封ip地址
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/'
 '537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
# 打开名为:大北京.csv的文件,先给第一行加一些名字['标题', '地址', '日租价格', '月租价格', '楼层特点', '面积']
with open('大北京.csv', 'a', newline='', encoding='utf-8-sig') as csvfile:
 w = csv.writer(csvfile)
 w.writerow(['标题', '地址', '日租价格', '月租价格', '楼层特点', '面积'])
# 由于有很多页面,每一个页面都有相应的链接,这里设置循环按顺序爬取每一个网页
for url in urls:
 # 对网站发送请求
 wb_data = requests.get(url, headers=headers)
 # 对返回的响应体进行解析
 soup = BeautifulSoup(wb_data.text, "lxml")
 # 用select函数抽取需要的内容,单击需要的内容》检查》copy select
 titles = soup.select("#list-content > div > dl > dt > span") # 在解析后的文档中查找标题
 addresses = soup.select("#list-content > div > dl > dd.address > span:nth-child(2)") # 地址
 dprices = soup.select("#list-content > div > div.item-price > div.price-a > em") # 日租价格
 mprices = soup.select("#list-content > div > div.item-price > div.price-b > em") # 月租价格
 lous = soup.select("#list-content > div > dl > dd:nth-child(2) > span:nth-child(3)") # 楼层属性
 areas = soup.select("#list-content > div > dl > dd:nth-child(2) > span:nth-child(1)") # 面积大小
 # 进一步获取我们想要的数据
 for title, address, dprice, area, lou, mprice in zip(titles, addresses, dprices, areas, lous, mprices):
 # 建立空列表,分配存储地址
 data = []
 dprice = dprice.text, # 价格直接获取里面的文本就可以,两边是标签
 dprice = dprice[0]+"元/m²•天"
 mprice = mprice.text, # 价格直接获取里面的文本就可以,两边是标签
 mprice = mprice[0]+"元/月"
 title = title.text.strip(), # 获得文本并去除掉文本两侧的不必要的字符,用strip()
 title = title[0]
 address = address.text.strip('[]') # 同样地址也是去除两头不必要的字符串
 area = area.text.strip("平米"),
 area = area[0]+"m²" # 获取面积
 lou = lou.text,
 data = [title, address, dprice, mprice, lou, area] # 将以上数据放入列表中打印在命令框
 print(data)
 # 打开文件大北京.csv,并循环地将数据写入其中,with open是自动关闭的函数
 with open('大北京.csv', 'a', newline='', encoding='utf-8-sig') as csvfile:
 w = csv.writer(csvfile)
 w.writerow(data)
 time.sleep(5)

 
python3爬虫实战-安居客写字楼信息,学会月入上万理所当然

以上就是所有的代码块,最终会保存在本地文档的.csv文件里面,文字繁多,一个人打字比较操劳,如果有可能我会开直播给大家教学,谢谢支持与关注,您的支持与关注是我进行下去的动力!


分享到:


相關文章: