安居客检测到网页抓取_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文件里面,文字繁多,一个人打字比较操劳,如果有可能我会开直播给大家教学,谢谢支持与关注,您的支持与关注是我进行下去的动力!

好的,我了解你的问题了。这是一个非常实用的问题,下面我将为你详细介绍Python爬取boss直聘招聘信息的实现方法。 首先,我们需要准备以下工具和库: - Python 3.6 或以上版本 - requests 库 - BeautifulSoup 库 - pandas 库 接下来,我们按照以下步骤进行实现: 1. 导入需要的库: ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. 定义一个函数,用于获取页面内容: ```python def get_page(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') return soup ``` 3. 定义一个函数,用于获取职位信息: ```python def get_jobs(soup): job_list = [] jobs = soup.select('.job-list ul li .job-primary .info-primary') for job in jobs: job_name = job.select('.job-title')[0].text.strip() company_name = job.select('.company-text .name')[0].text.strip() salary = job.select('.job-limit .red')[0].text.strip() job_info = job.select('.job-title')[0].attrs['href'] job_detail = get_job_detail(job_info) job_list.append([job_name, company_name, salary, job_detail]) return job_list ``` 4. 定义一个函数,用于获取职位的详细信息: ```python def get_job_detail(url): soup = get_page(url) job_detail = soup.select('.job-detail .job-sec')[0].text.strip().replace('\n', '') return job_detail ``` 5. 定义一个函数,用于保存数据到本地CSV文件: ```python def save_to_csv(job_list): df = pd.DataFrame(job_list, columns=['职位名称', '公司名称', '薪资待遇', '职位描述']) df.to_csv('boss直聘招聘信息.csv', index=False) ``` 6. 最后,我们编写主程序: ```python if __name__ == '__main__': url = 'https://www.zhipin.com/c101280100/?query=python&page=1' soup = get_page(url) job_list = get_jobs(soup) save_to_csv(job_list) ``` 在运行程序之前,我们需要先确定爬取的页面URL和参数。在本例中,我们爬取的是boss直聘上“python”职位的招聘信息,因此URL为“https://www.zhipin.com/c101280100/?query=python&page=1”,其中“c101280100”是城市代码,这里是上海的城市代码,可以根据需要修改。在“query”参数中输入关键词“python”,“page”参数表示页码。 运行程序后,会将爬取到的职位信息保存到本地的CSV文件中,文件名为“boss直聘招聘信息.csv”。 以上就是Python爬取boss直聘招聘信息的实现方法,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值