week04day02(爬蟲02)

  • <span>: 通常用于對文本的一部分進行樣式設置或腳本操作。
  • <a>: 定義超鏈接,用于創建鏈接到其他頁面或資源的文本。
  • <img>: 用于插入圖像。
  • <br>: 用于插入換行。
姓名:<input type="text" value="lisi">密碼:<input type="password" ><br>性別:<input type="radio" name="sex" id='g1'> <label for="g1">男</label><input type="radio" name="sex" id='g2'> <label for="g2">女</label><br>興趣:<input type="checkbox">籃球<input type="checkbox" />乒乓球<!--
input 會出現一個框, type的類型會決定框的類型。 
type = text, 就是輸入框的方框
type = radio 是只能夠單選的圓框
type = checkbox 是可以多選的框
-->

<!DOCTYPE html>
<!-- html是以標簽為單位為網頁提供內容標簽一共分為兩類:1.雙標簽:有始有終 <標簽名>內容</標簽名>  例子:<html> 內容  </html>2.單標簽:<br><meta />-->
<html><head><meta charset="utf-8" /><title>百度一下你就知道</title><link rel="icon" href="img/logo.png"></head><body><h1>welcome</h1><h2>welcome2</h2><p>走在風中今天陽光突然好溫柔</p><span>基本信息</span><br><br><a href="https://fanyi.baidu.com">百度翻譯</a><br>姓名:<input type="text" value="lisi">密碼:<input type="password" ><br>性別:<input type="radio" name="sex" id='g1'> <label for="g1">男</label><input type="radio" name="sex" id='g2'> <label for="g2">女</label><br>興趣:<input type="checkbox">籃球<input type="checkbox" />乒乓球</body>
</html>

一. css選擇器

  • .c1{} 指定class為 c1 的所有元素
  • ?p.c1{} 同時選擇標簽為p且class為c1的所有元素
  • ?.c1.c2.c3{} class為 c1 c2 c3都可以滿足后面的規則
  • p , .c1 ,?#p1{}? 選擇所有的p class為c1 以及id為p1的所有元素
  • ?div c1{}? div后面+空格 就表示 選擇div元素內部所有具有c1的class的子孫元素 (后代,只要在后面的都是)
  • ?div>p{} 選擇div元素的直接子元素 (子代,只能在下面一個)

代碼示例

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>css選擇器</title><style>#header {background-color: burlywood;color: aliceblue;padding: 20px;}#content {font-size: 18px;line-height: 1.5;padding: 20px;}#footer {background-color: darkgray;}</style></head><body><div id="header"><h1>歡迎來到我的網頁</h1></div><div id="content"><p>主要區域</p><p>電影的文本信息</p></div><div id="footer">&copy;2024 ALL rights reserved</div></body>
</html>

二.?獲取API的數據

### 老師代碼
import requests
# 注意:要更改成自己的賬號的key才可以執行
# 傳參的規則詳見官網# API key: 77e3001618697564b156bfc856d3820b
# num: 多少條res = requests.get(url='https://apis.tianapi.com/esports/index',params={'key':'77e3001618697564b156bfc856d3820b','num':15})# print(res.status_code)
# print(res.text)result = res.json()['result']
# print(result)news_list = result['newslist']
for news in news_list:print(news['title'])print(news['ctime'])print(news['description'])### 我的部分
'''
headers={'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36'}
api-key:  82c04e57b37b96376658254d8d32dcc1
num : 多少條
'''import requests
res = requests.get(url='https://apis.tianapi.com/esports/index',params = {'key':'82c04e57b37b96376658254d8d32dcc1','num':15})
# print(res.status_code)
# print(res.text)result = res.json()['result']
#print(result)
new_list = result['newslist']
for news in new_list:print(news['title'])print(news['ctime'])print(news['description'])'''
天道好輪回? Heroic繼續對Astralis保持不敗
2024-02-21 11:00
在剛剛結束的一場PGL哥本哈根MajorRMR歐洲區的賽事中,Heroic以13-7戰勝Astralis,在新版本的CS中繼續對這支...
歐洲RMR B組:一路順風率先出線!C9 2-1擊敗Vitality
2024-02-21 11:00
歐洲RMRB組,Vitality對陣C9,圖一開始C9抓住機會率先拉開比分,隨后Vitality馬上調整狀態追上比分上半場7-5領先...
Falcons總監:租借可以讓我們靈活確定參賽陣容
2024-02-21 11:00
顯然很多人都為s1mple的加盟而激動不已。我很高興Falcons能夠促成此事。要說明的是:正如聲明中所言,這只是參加BLAST復活...
C9經理:s1mple轉會的關鍵在個人意愿而非錢
2024-02-21 11:00
Cloud9經理并不認同外界口中Falcons豪擲千金買下s1mple的說法。在這方面,我大膽假設,s1mple的轉會關鍵更多的在于他...
jL:對s1mple加入Falcons毫不知情
2024-02-21 11:00
日前在和主播ohnepixel的直播連線中,NaVi選手jL分享了自己對s1mple加入Falcons一事的看法。
歐洲RMR B組:我們這邊也有高手!MOUZ 2-0 Spirit
2024-02-21 11:00
歐洲RMRB組,Spirit對陣MOUZ,雙方大戰一觸即發,爭奪率先晉級的名額。經過BO3的大戰,最終MOUZ以2-0擊敗了對手,取...
官宣:Rocket退出美洲RMR NRG有望候補
2024-02-21 11:00
昨天Rocket選手EMIYA第二次被平臺因作弊封禁,同時隊內其他選手也承認隊伍在RMR封閉預選賽中違規有教練在旁邊支招。目前Rock...
TeSeS:擊敗A隊絕非靠運氣
2024-02-21 11:00
在備受期待的比賽之后,TeSeS接受了外媒采訪,談到了他們到目前為止的Major征程,擊敗Astralis的感受以及對他們的第一個國際...
時隔近兩年 Boombl4重返Major!
2024-02-21 11:00
在昨天晚上的比賽中,Cloud9戰隊2-1擊敗Vitality,意味著Boombl4成功晉級到了PGL哥本哈根Major當中。
KRAFTON 2023年度總銷售額達19,106億韓元 創歷史新高
2024-02-20 19:00
KRAFTON公司(CEOCHKim)于1月26日公布了2023年全年及第四季度的財報業績,并于2月8日下午召開了財報電話會議。
HLTV本周戰隊排名:C9與ENCE重返前十,NIP排名清零
2024-02-20 19:00
與上周相比,世界前五沒有變化,第六至十名方面,曾在卡托維茲站闖進四強的沙特豪門Falcons出人意料地潰敗,在RMRA組折戟,無緣P...
《豆豆的村莊》探險奇跡是什么?前期發展指南
2024-02-20 13:00
豆村奇跡分為探險奇跡和功能奇跡;接下來從新手視角,教教大家怎么解鎖初級常見的幾種奇跡。
《名利游戲》:一場關于選擇與后果的“互動劇”現已登陸Steam
2024-02-20 13:00
2024年2月20日——在等待中充滿期待的互動劇《名利游戲》終于在Steam平臺上線,為廣大游戲愛好者帶來了一場獨特的人生冒險。這...
歐洲RMR B組:砍瓜切菜,小蜜蜂13-2輕取GL
2024-02-20 11:00
歐洲RMRB組:首輪Vitality對陣GL。選圖核子危機,ZywOo手槍局ACE宣布接管比賽,不斷平推外場,小蜜蜂輕松取得首勝。
歐洲RMR B組:游龍式表演,綠龍零封ENCE
2024-02-20 11:00
歐洲RMRB區,今晚迎來了綠龍對陣ENCE,在死亡游樂園上,donk、sh1ro、chopper輪番表演,完成了零封的壯舉,擊敗了E...
'''

三.re正則拆分網頁

import requests
from re import findall,fullmatch
import csv# 1.獲取網頁源代碼response = requests.get('https://cd.zu.ke.com/zufang')
result = response.text# print(result)# 2.房源信息獲取
# <a class="twoline" target="_blank" href="/zufang/CD1871411262642978816.html">
#           整租·五福橋東路8號 2室1廳 北        </a>names = findall(r'(?s)<a class="twoline".+?>(.+?)</a>',result)
names = [x.strip() for x in names]# print(names)# <span class="content__list--item-price"><em>2200</em> 元/月</span>
prices = findall(r'<span class="content__list--item-price"><em>(\d+)</em>',result)
# print(prices)# 3.將房源和價格匹配
house = map(lambda i1,i2: (i1, i2),names,prices) # 將名稱和價格打包成元組
print(list(house))# 4.數據持久化
f = open('files/租房.csv','a',encoding='utf-8',newline='')
writer = csv.writer(f)
writer.writerow(['名稱','價格'])
writer.writerows(list(house))

四.批量圖片下載

  • 需要通過get獲取網頁源代碼

  • 通過源碼+re正則獲取想要的數據列表

  • 通過列表的循環一一獲取資源地址

  • 通過get請求加資源地址獲取圖片源文件

# <img alt="整租·東立國際廣場 1室0廳 南_東立國際廣場租房"
# src="https://ke-image.ljcdn.com/lease-image/house/dbd463aebd7c99123c5d1677a819a123.jpeg.250x182.jpg"
# data-src="https://ke-image.ljcdn.com/lease-image/house/dbd463aebd7c99123c5d1677a819a123.jpeg.250x182.jpg"
# class=" lazyloaded" data-expand="400"># <a class="content__list--item--aside" target="_blank" href="/zufang/CD1859169008134127616.html" title="整租·龍城國際 3室2廳 北/東北">
#         <img alt="整租·龍城國際 3室2廳 北/東北_龍城國際租房" src="https://ke-image.ljcdn.com/110000-inspection/15657758-3dfa-4734-ae81-01dc29303a24.jpg!m_fill,w_250,h_182,l_fbk,o_auto" data-src="https://ke-image.ljcdn.com/110000-inspection/15657758-3dfa-4734-ae81-01dc29303a24.jpg!m_fill,w_250,h_182,l_fbk,o_auto" class=" lazyloaded" data-expand="400">
#         <!-- 是否展示vr圖片 -->
#                     <i class="vr-logo"></i>
#                 <!-- 是否展示省心租圖片 -->
#                     <i class="sxz-logo"></i>
#                 <!-- 廣告標簽 -->
#             </a>import requests
from re import findall
from uuid import uuid1# 1.獲取網頁源代碼
response = requests.get('https://cd.zu.ke.com/zufang')
content = response.text# 2.解析圖片地址
all_images = findall(r'(?s)<a\s+class="content__list--item--aside".+?>\s+<img.+?data-src="(.+?)"',content)
# print(all_images)# 3.下載圖片函數
def download_image(url:str):response = requests.get(url)with open(f'files/{uuid1()}.jpeg','wb') as f:f.write(response.content)# 調用函數
for x in all_images:download_image(x)

五. 網頁創建(hbuilderx)

<!DOCTYPE html><html><head><meta charset="utf-8"><title>css選擇器</title><style>#header {background-color: burlywood;color: aliceblue;padding: 20px;}#content {font-size: 18px;line-height: 1.5;padding: 20px;}p.c1{background-color: darkgray;color: #666;}</style></head><body><div id="header"><h1>歡迎來到我的網頁</h1></div><p class="c1">具有c1的p標簽</p><div id="content"><p class="c1">在div內部具有c1的p標簽</p><span class="c1">在div內部具有c1的行內元素</span><p class="c1 c2 c3" id="p1">具有多個類的p標簽且有id</p><p>展示了電影的文本信息</p></div><div id="footer">&copy;2024 ALL rights reserved.</div></body>
</html>

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

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

相關文章

嵌入式培訓機構四個月實訓課程筆記(完整版)-Linux ARM驅動編程第七天-內核函數接口(物聯技術666)

鏈接&#xff1a;https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取碼&#xff1a;1688 //************************************************** #include <linux/module.h> /*module_init()*/ #include <linux/kernel.h> /* printk() *…

【析】考慮同時取送和時間窗的車輛路徑及求解算法

期刊&#xff1a;computer engineering and applications 計算機工程與應用![c 引言 1. 問題分析 1.1 問題描述 問題描述為&#xff1a; 若干運輸車輛從配送中心出發為客戶取送貨并最終返回配送中心&#xff0c;每位客戶僅由一輛車服務一次&#xff0c;車輛在配送過程中任…

rust實戰系列八:常量

在Rust中還可以用const關鍵字做聲明。如下所示: const GLOBAL: i32 0; 使用const聲明的是常量&#xff0c;而不是變量。因此一定不允許使用mut關鍵字修飾這 個變量綁定&#xff0c;這是語法錯誤。常量的初始化表達式也一定要是一個編譯期常量&#xff0c;不 能是運行期的值。它…

ChatGPT丨成像光譜遙感技術中的AI革命:ChatGPT應用指南

遙感技術主要通過衛星和飛機從遠處觀察和測量我們的環境&#xff0c;是理解和監測地球物理、化學和生物系統的基石。ChatGPT是由OpenAI開發的最先進的語言模型&#xff0c;在理解和生成人類語言方面表現出了非凡的能力。本課程重點介紹ChatGPT在遙感中的應用&#xff0c;人工智…

尾礦庫排洪系統結構仿真軟件WKStruc(可試用)

1、背景介紹 尾礦庫作為重大危險源之一&#xff0c;在國際災害事故排名中位列第18位&#xff0c;根據中國鉬業2019年8月刊《中國尾礦庫潰壩與泄漏事故統計及成因分析》的統計&#xff0c;在46起尾礦庫泄漏事故中&#xff0c;由于排洪設施導致的尾礦泄漏事故占比高達1/3&#x…

c#創建安裝windows服務

背景:最近在做設備數據對接采集時,遇到一些設備不是標準的Service-Client接口,導致采集的數據不夠準確;比如設備如果中途開關機后,加工的數量就會從0開始重新計數,因此需要實時監控設備的數據,進行疊加處理;考略到工廠設備比較多,實時監聽接口的數據為每秒3次,因此將…

外包干了三年,技術算是廢了。。。

先說一下自己的個人情況&#xff0c;大專生&#xff0c;17年通過校招進入湖南某軟件公司&#xff0c;干了接近5年的手工測試&#xff0c;今年年初&#xff0c;感覺自己不能夠在這樣下去了&#xff0c;長時間呆在一個舒適的環境會讓一個人墮落!而我已經在一個企業干了五年的手工…

LeetCode.106. 從中序與后序遍歷序列構造二叉樹

題目 106. 從中序與后序遍歷序列構造二叉樹 分析 前面講過根據前序和中序構建二叉樹&#xff1a;博客鏈接 這道題是告訴我們一顆二叉樹的后序和中序&#xff0c;讓我們根據后序和中序構造出整顆二叉樹。 拿到這道題&#xff0c;我們首先要知道中序的后序又怎樣的性質&#…

云上業務一鍵性能調優,應用程序性能診斷工具 Btune 上線

- 01 - 終于等來了預算&#xff0c;這就把服務遷移到最新的 CPU 平臺上去&#xff0c;這樣前端的同事立馬就能感受我們帶來的速度提升了。可是…… 這些性能指標怎么回事&#xff1f;不僅沒有全面提升&#xff0c;有些反而下降了。不應該這樣啊&#xff0c;這可怎么辦&#xf…

使用單一ASM-HEMT模型實現從X波段到Ka波段精確的GaN HEMT非線性仿真

來源&#xff1a;Accurate Nonlinear GaN HEMT Simulations from X- to Ka-Band using a Single ASM-HEMT Model 摘要&#xff1a;本文首次研究了ASM-HEMT模型在寬頻帶范圍內的大信號準確性。在10、20和30 GHz的頻率下&#xff0c;通過測量和模擬功率掃描進行了比較。在相同的頻…

day05-進程通信

1> 將互斥機制的代碼實現重新敲一遍 代碼&#xff1a; #include<myhead.h>int num520;//臨界資源//1.創建互斥鎖 pthread_mutex_t fastmutex;//定義任務函數 void *task1(void *arg){printf("1111111\n");//3.臨界區上面獲取鎖資源&#xff08;上鎖&#…

LeetCode每日刷題:101. 對稱二叉樹

題目&#xff1a; 解題思路&#xff1a;可以新寫一個函數&#xff0c;從root開始&#xff0c;root的left的頭結點將記為lefttree&#xff08;左子樹&#xff09;,root的lright的頭結點將記為righttree&#xff08;右子樹&#xff09;&#xff0c; 然后遞歸左子樹的root.left與右…

【鴻蒙 HarmonyOS 4.0】TypeScript開發語言

一、背景 HarmonyOS 應用的主要開發語言是 ArkTS&#xff0c;它由 TypeScript&#xff08;簡稱TS&#xff09;擴展而來&#xff0c;在繼承TypeScript語法的基礎上進行了一系列優化&#xff0c;使開發者能夠以更簡潔、更自然的方式開發應用。值得注意的是&#xff0c;TypeScrip…

Python:Keyboard Interrupt - 當代碼遇到“Ctrl+C“時發生了什么?

Python&#xff1a;Keyboard Interrupt - 當代碼遇到"CtrlC"時發生了什么&#xff1f; &#x1f308; 個人主頁&#xff1a;高斯小哥 &#x1f525; 高質量專欄&#xff1a;【Matplotlib之旅&#xff1a;零基礎精通數據可視化】 &#x1f4a1; 創作高質量博文&#x…

Web服務器集群: kylin 部署 Halo博客系統

目錄 一、實驗 1.環境 2. kylin 部署mysql數據庫 3. kylin 構建Java運行環境 4. 創建博客使用的數據庫 5. kylin 部署 halo博客系統 6. kylin 部署nginx 7. kylin 使用 SSL證書基于https訪問部署的博客系統 二、問題 1.mysql安裝報錯 2.查看mysql數據庫報錯 3.syste…

【k近鄰】 K-Nearest Neighbors算法k值的選擇

【k近鄰】 K-Nearest Neighbors算法原理及流程 【k近鄰】 K-Nearest Neighbors算法距離度量選擇與數據維度歸一化 【k近鄰】 K-Nearest Neighbors算法k值的選擇 【k近鄰】 Kd樹的構造與最近鄰搜索算法 【k近鄰】 Kd樹構造與最近鄰搜索示例 k近鄰算法&#xff08;K-Nearest Neig…

jdk動態代理與CGLib動態代理

jdk動態代理 目標對象 package com.study;/*** 目標對象&#xff08;被代理的對象&#xff09;**/ public class Target implements TargetInf{public String name;public Target() {}public Target(String name) {this.name name;}public String buyCola (String name){Sys…

【SQL注入】靶場SQLI DUMB SERIES-24通過二次注入重置用戶密碼

先使用已知信息admin/admin登錄進去查下題&#xff0c;發現可以修改密碼 猜測可能存在的SQL語句&#xff1a;UPDATE user SET password新密碼 WHERE user用戶名 and password舊密碼 假設我們知道有個admin用戶&#xff0c;但是不知道其密碼&#xff0c;如何可以將其密碼重置&…

雜題——1097: 蛇行矩陣

題目描述 蛇形矩陣是由1開始的自然數依次排列成的一個矩陣上三角形。 輸入格式 本題有多組數據&#xff0c;每組數據由一個正整數N組成。&#xff08;N不大于100&#xff09; 輸出格式 對于每一組數據&#xff0c;輸出一個N行的蛇形矩陣。兩組輸出之間不要額外的空行。矩陣三角…

如何在群輝7.2中使用Docker搭建容器魔方服務并遠程訪問【內網穿透】

文章目錄 1. 拉取容器魔方鏡像2. 運行容器魔方3. 本地訪問容器魔方4. 群輝安裝Cpolar5. 配置容器魔方遠程地址6. 遠程訪問測試7. 固定公網地址 本文主要介紹如何在群輝7.2版本中使用Docker安裝容器魔方&#xff0c;并結合Cpolar內網穿透工具實現遠程訪問本地網心云容器魔方界面…