记一次python爬虫租房经历

编程入门 行业动态 更新时间:2024-10-22 19:31:41

记一次python<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫租房经历"/>

记一次python爬虫租房经历

最近租房到期了 ,然后就想找找附近的房子  但是信息太多太杂了 看起来太不方便了  身为一个程序员  怎么能不搞点事情呢?

就想到了“爬虫”,利用爬虫去爬取链家,58,安居客等的租房信息,然后存入excel表格中,我们就可以在表格中清晰地看到各种租赁信息了。一下就用链家作为一个示例:

首先登陆链家网,选定了地点信息之后 如下图所示

 

可以发现页码与紫色字体部分有一个对应关系

映射到代码中  我们可以用一个循环 总页码70  然后去拼接这个url 去获取html数据,代码如下图所示

设置好请求头部(不设置header会出现403的错误 ,有些网站不需要如58) 然后去发起请求

 

 

然后 打开F12 我们可以看到 每一个房子的信息都存在一个div中  有一个固定的规律

详细信息如下:

一下为python 获取dom元素的属性和内容 做了一些简单的过滤  循环得到数据  然后存入excel表格中

以上就是大体的思路  然后 我们贴一下完整代码以及结果

# -*- coding:utf-8 -*-
import requests
from requests.exceptions import RequestException
from bs4 import BeautifulSoup
from time import sleep
import pymongo
import xlwt#设置excel样式
style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',num_format_str='#,##0.00')
style1 = xlwt.easyxf('font: name Times New Roman, color-index green, bold on',num_format_str='#,##0.00')
#声明一个excel对象
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')def get_one_page(url):try:headers = {"Accept": "*/*","Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.9","Connection": "keep-alive","Host": "sh.lianjia","Upgrade - Insecure - Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"}response = requests.get(url, headers=headers)if response.status_code == 200:return response.textelse:return Noneexcept RequestException:return Nonedef parse_one_page(html, id):soup = BeautifulSoup(html, 'lxml')prefix = ""for item in soup.select('.content__list--item'):houseInfo = item.find("img").get("alt")if "2室" in houseInfo:houseUrl = prefix + item.find("a").get("href")housePrice = item.find(class_="content__list--item-price").get_text().split(" ")[0]houseTime = item.find(class_="content__list--item--time").get_text()print("地址:  " + houseInfo + "   价格:" + housePrice + "   发布时间:" + houseTime + "   url:" + houseUrl)#设置excel的内容ws.write(id+1, 0, houseInfo, style1)ws.write(id+1, 1, housePrice, style1)ws.write(id+1, 2, houseTime, style1)ws.write(id+1, 3, houseUrl, style1)id += 1yield {'_id': id,'houseUrl': houseUrl,'houseInfo': houseInfo,'housePrice': housePrice,'houseTime': houseTime}, id# 循环完成保存到house.xls中wb.save('house.xls')if __name__ == '__main__':client = pymongo.MongoClient('mongodb://localhost:27017')db_name = 'lianjia_zufang_shanghai'db = client[db_name]collection_set01 = db['set01']index = 0# 设置excel的头部ws.write(0, 0, "地址", style0)ws.write(0, 1, "价格", style0)ws.write(0, 2, "发布时间", style0)ws.write(0, 3, "url", style0)#总页码设置for page in range(1):sleep(1)#url拼接url = ''+str(page)+'/#contentList'html = get_one_page(url)print(html)for item, index in parse_one_page(html, index):#collection_set01.save(item)print()print("完成")

运行结果

生成的数据存在excel中的结果

更多推荐

记一次python爬虫租房经历

本文发布于:2024-03-08 23:24:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722825.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!