安居客检测到网页抓取_python3爬虫实战-安居客写字楼信息,学会月入上万理所当然...

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

29f186d88c7a356eec50fac6a0a00fe9.png

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

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

安居客的北京写字楼链接: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)
fa65adf78e02c8e4b901a33a97342341.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值