Python案例題目,入門小白題

1.抓取鏈家前十頁的數據

鏈家網址:長沙房產網_長沙房地產_長沙房產門戶(長沙鏈家網)

1.1.計算均價和總價

import time
?
from selenium import webdriver
from selenium.webdriver.common.by import By
?
driver = webdriver.Chrome()
driver.get("https://cs.lianjia.com/zufang/rs岳麓區/")
?
# 總價
total = 0
# 記錄房間個數
size = 0
?
for i in range(2):elements = driver.find_elements(By.CSS_SELECTOR, '.content__list--item--main')print(f"第{i+1}頁的數據:")for el in elements:# 獲取租房標題name = el.find_element(By.CSS_SELECTOR, '.content__list--item--title a').text# 判斷是否包含獨棟信息if name.__contains__("獨棟"):continue# 獲取租房的價格price = el.find_element(By.CSS_SELECTOR, '.content__list--item-price em').textprint(f"name={name},price={price}")total += float(price)# 記錄房間的個數size += len(elements)# 點擊下一頁driver.find_element(By.CSS_SELECTOR,'a.next').click()# 模擬睡眠6秒time.sleep(2)
?
print(f"總價:{total},岳麓區的租房均價為:{total/size}")

1.2.計算的類型(整租,合租)

str = """
name=整租·萬科里金域國際 4室2廳 南,price=4500
name=獨棟·魔方公寓 長沙航天溪湖店 連鎖公寓直租無中介費 1室1廳,price=1800
name=整租·瀟湘奧林匹克花園 1室1廳 南,price=2200
name=合租·達美美立方 5居室 復式 南臥,price=999
name=整租·萬科里金域國際 3室2廳 南,price=3400
"""
# 計算的類型(整租,合租)
print("整租:", str.count("整租"))
print("合租:", str.count("合租"))

1.3.計算的房型

由于在爬取的數據中存在“居室”“室”的區別,所以請將所有的“居室”數據替換成“室”

str = """
name=整租·萬科里金域國際 4室2廳 南,price=4500
name=獨棟·魔方公寓 長沙航天溪湖店 連鎖公寓直租無中介費 1室1廳,price=1800
name=整租·瀟湘奧林匹克花園 1室1廳 南,price=2200
name=合租·達美美立方 5居室 復式 南臥,price=999
name=整租·萬科里金域國際 3室2廳 南,price=3400
"""
import re
import collections
st = str.replace('居室','室')
rs = re.findall(r'\d室',st)
print(rs)
print(collections.Counter(rs))

2.抓取boss直聘前十頁的數據

boss直聘網址:「北京招聘網」海量北京人才招聘信息 - BOSS直聘

2.1.抓取boss直聘前十頁的數據

其中參數city=101020100是中國天氣網全城市代碼weather_cityId

from selenium import webdriver
from selenium.webdriver.common.by import By
import time 
?
driver = webdriver.Chrome()
driver.get("https://www.zhipin.com/web/geek/job?query=java&city=101020100")
?
jobs = []
?
for i in range(3):time.sleep(6)elements = driver.find_elements(By.CSS_SELECTOR, ".job-card-wrapper")for el in elements:# 獲取地區area = el.find_element(By.CSS_SELECTOR,"span.job-area").text# 獲取薪酬salary = el.find_element(By.CSS_SELECTOR,"span.salary").textprint(f"area={area},salary={salary}")jobs.append({'area':area,'salary':salary})driver.find_element(By.CSS_SELECTOR,".selected+a").click()
?
print(jobs)

2.2.將獲取數據本地序列化

Python的pickle模塊是一種用于序列化(將對象轉換為字節流)和反序列化(將字節流轉換回對象)Python對象的工具。它可以將Python對象保存到文件中或從文件中加載對象。

pickle模塊還有其他一些有用的函數和特性。以下是一些常見的功能:

  • pickle.dumps(obj):將對象序列化為字節流,但不保存到文件中。

  • pickle.loads(bytes_obj):從字節流中加載對象,而不是從文件中加載。

  • pickle.dump(obj, file):將對象序列化并保存到文件中。

  • pickle.load(file):從文件中加載序列化的對象。

# 將獲取到的結果保存到本地
p = Path("jobs.txt")
p.touch()
# 通過pickle.dump實現數據序列化
pickle.dump(jobs,p.open(mode="wb"))

2.3.計算每個區的需求個數與均價

# 計算每個區的需求個數與均價
jobs = pickle.load(open('jobs.txt',mode="rb"))
print(jobs)
areas=list(map(lambda a: "".join(re.findall(r'.*?·(.*?)·.*?',a['area'])),jobs))
print(areas)
import collections
rs = collections.Counter(areas)
?
for k,v in rs.items():print(f"【{k}】的工作崗位需求數:{v}")# 獲取該區的工作集合ps = list(filter(lambda e: e['area'].count(k) > 0, jobs))# 獲取該區的薪酬總價total = functools.reduce(lambda a,b:a+int(b['salary'].split('-')[0]),ps,0)print(f"該區的工作入門平均薪酬:{total/len(ps)}")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13629.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13629.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13629.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux系統內存持續飆高的排查方法

目錄 前言: 1、查看系統內存的占用情況 2、找出占用內存高的進程 3、解決方法 4、補充:如果物理內存使用完了,會發生的情況 前言: 如果一臺服務器內存使用率持續處于一個高峰值,服務器可能會出現響應慢問題。例如s…

使用@Autowired + Map 實現策略模式

使用Autowired Map 實現策略模式 創建接口 public interface UserService {String getName(); }創建多個類實現上面的接口 實現一 import com.boot.service.UserService; import org.springframework.stereotype.Service;Service("zhangsan") public class Zhangsan…

代碼隨想錄算法訓練營第十六天|LeetCode104 二叉樹的最大深度、LeetCode111 二叉樹的最小深度、LeetCode222完全二叉樹的節點個數

題1: 指路:LeetCode104 二叉樹的最大深度 思路與代碼: 1.遞歸 求左右子樹的最大深度后加1(根到子樹也有1個深度單位)。代碼如下: class Solution { public:int maxDepth(TreeNode* root) {int ans 0;if (root NULL) return…

當他們在說業務的時候,到底在說什么

業務就是通過提供產品和服務給客戶,以獲取某種價值,形成業務閉環,并能自負盈虧。 文章會以生動形象的比喻來介紹業務到底是什么。 什么是業務? 業務,就像一場精彩的舞臺劇,每個角色都有自己的任務和目標…

electron學習記錄

1.下載electron electron/electron-quick-start: Clone to try a simple Electron app (github.com) 下載實例模板 2.安裝依賴 npm源改成中國鏡像 npm config set registry https://registry.npmmirror.com 然后用cnpm i 來安裝 npm換官方源 npm config set registry https:…

QT--TCP網絡通訊工具編寫記錄

QT–TCP網絡通訊工具編寫記錄 文章目錄 QT--TCP網絡通訊工具編寫記錄前言演示如下:一、服務端項目文件:【1.1】server_tcp.h 服務端聲明文件【1.2】thread_1.h 線程處理聲明文件【1.3】main.cpp 執行源文件【1.4】server_tcp.cpp 服務端邏輯實現源文件【…

cuda 內核啟動

C 使用 __global__ 聲明說明符定義內核&#xff0c;并使用新的 <<<...>>> 執行配置語法指定內核調用的 CUDA 線程數&#xff08;請參閱 C 語言擴展&#xff09;。 每個執行內核的線程都有一個唯一的線程 ID&#xff0c;可以通過內置變量在內核中訪問。 示例…

【最全的excel轉json!!!】使用Python腳本提取excel文本中的數據到json中

比如說&#xff1a;我有一個1.xlsx的文件需要轉成對應的json格式。 1&#xff09; excel 文件的大概內容&#xff1a; 2&#xff09;保存的方式類似于以下這種情況&#xff1a; 用Python腳本來實現 import pandas as pd import json# 讀取Excel文件 excel_path r"D:…

基礎知識篇:大語言模型核心原理解析

1??人工智能基礎概念全景圖 &#x1f4a1; &#x1f9e0;人工智能與機器學習 人工智能&#xff08;AI&#xff09;是計算機科學的一個分支&#xff0c;旨在模擬人類的智能來解決問題。而機器學習&#xff08;ML&#xff09;是AI的一個子集&#xff0c;它的魅力在于不需要顯…

【MySQL精通之路】MySQL8.0升級過程升級了什么

目錄 1.升級內容 1.1 mysql系統庫 1.2.其他庫 2.步驟 2.1 步驟1&#xff1a;數據字典庫升級。 2.2 步驟2&#xff1a;服務器升級。 3.mysql_upgrade 3.1 執行正常升級&#xff08;根據需要執行步驟1和2&#xff09;&#xff1a; 3.2 必要時僅執行步驟1&#xff1a; 3…

【MySQL精通之路】InnoDB(6)-磁盤結構(6)-Undolog

1.介紹 Undolog是與單個讀寫事務相關聯的Undolog記錄的集合。 Undolog包含有關如何撤消事務對聚集索引記錄最新更改的信息。如果另一個事務需要將查看一致性讀的一部分原始數據&#xff0c;則會從Undolog記錄中檢索未修改的數據。 2.結構 Undolog記錄存在于Undolog段中 而Un…

LLMPerf-為LLM提供可重現的性能指標

LLMPerf-為LLM推理提供可復現的性能指標 翻譯自文章&#xff1a;Reproducible Performance Metrics for LLM inference 結合之前的LLMPerf測試大模型API性能的文章進行查看&#xff0c;效果更佳。 1. 摘要 我們見過許多關于LLM性能的聲明&#xff1b;然而&#xff0c;這些聲明往…

Android面試題之Kotlin泛型和reified關鍵字

本文首發于公眾號“AntDream”&#xff0c;歡迎微信搜索“AntDream”或掃描文章底部二維碼關注&#xff0c;和我一起每天進步一點點 //泛型 class MagicBox<T>(item:T){var available falseprivate var subject:T itemfun fetch() : T? {return subject.takeIf { avai…

Ubuntu徹底卸載Nginx

停止Nginx服務 sudo systemctl stop nginx卸載Nginx軟件包 sudo apt purge nginx nginx-common nginx-core清除配置文件和依賴項 清除Nginx的配置文件 sudo rm -rf /etc/nginx清除Nginx安裝的依賴項 sudo apt autoremove清除相關文件和目錄 刪除Nginx的日志文件 sudo rm…

配置旁掛二層組網直接轉發示例(命令行)

業務需求 企業用戶通過WLAN接入網絡&#xff0c;以滿足移動辦公的最基本需求。且在覆蓋區域內移動發生漫游時&#xff0c;不影響用戶的業務使用。 組網需求 AC組網方式&#xff1a;旁掛二層組網。DHCP部署方式&#xff1a; AC作為DHCP服務器為AP分配IP地址。匯聚交換機SwitchB作…

深度學習基礎之《TensorFlow框架(18)—卷積神經網絡(2)》

一、卷積層 1、卷積層&#xff08;Convolutional Layer&#xff09;介紹 卷積神經網絡中每層卷積層由若干卷積單元&#xff08;卷積核&#xff09;組成&#xff0c;每個卷積單元的參數都是通過反向傳播算法最佳化得到的 卷積運算的目的是特征提取&#xff0c;第一層卷積層可能…

Gradle和Maven項目解決Spring Boot Configuration Annotation Processor not configured警告

問題描述 寫了一個配置類,加了注解@ConfigurationProperties(prefix = “xxx”) 后一直報警告:Spring Boot Configuration Annotation Processor not configured 意思是 Spring boot 未配置注解處理器 解決過程 出現這個問題后,百度查了解決方式 1.maven項目 maven項目是…

學習前端第四十四天(瀏覽器事件簡介)

一、事件處理程序 對事件作出響應&#xff0c;可以分配一個 處理程序 &#xff0c; 一個在事件發生時運行的函數 1、HTML特性綁定事件處理函數 <button id"btn1" οnclick"fn();console.log(xc)">保存1</button> 2、DOM屬性綁定事件處理函數…

純軟件雙機熱備

在信息化高速發展的今天&#xff0c;企業對于業務連續性的需求愈發強烈。無論哪個行業&#xff0c;系統的穩定運行都至關重要。為了確保系統的高可用性和業務連續性&#xff0c;純軟件雙機熱備技術應運而生&#xff0c;成為了企業IT架構中的關鍵一環。 雙機熱備軟件下載 …

04信號量

如果有兩個或者兩個以上的任務(進程 / 線程&#xff0c;并發的實體)&#xff0c;去訪問一個共享資源(硬件上面的&#xff0c;軟件上的)。我們必須要保證這個共享資源的有序訪問&#xff0c;否則會產生不可預知的后果 例子: very_important_i 5; // 共享資源 fun(…