課時09 第二節課程 解析網頁中的元素

2021-07-23 08:54:28 字數 3665 閱讀 8357

find-all

from bs4 import beautifulsoup

data=

path = r'd:\baiduyundownload\python實戰::四周實現爬蟲系統\課程資料\課程原始碼及作業參***\week1\1_2\1_2code_of_video\web\new_index.html'

with open(path, 'r') as f:

soup = beautifulsoup(f.read(), 'lxml')#解析網頁

titles = soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')#從解析好的網頁中選擇元素,以列表形式返回

images = soup.select('body > div.main-content > ul > li > img')

descs = soup.select('body > div.main-content > ul > li > div.article-info > p.description')

cates = soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')

rates = soup.select('body > div.main-content > ul > li > div.rate > span')

for title, image, desc, cate, rate in zip(titles, images, descs, cates, rates):#遍歷列表

info =

for i in data:

if float(i['rate']) >= 4:

print(i['title'], i['rate'])

path = './1_2_homework_required/index.html' #這裡使用了相對路徑,只要你本地有這個檔案就能開啟

with open(path, 'r') as wb_data: # 使用with open開啟本地檔案

soup = beautifulsoup(wb_data, 'lxml') # 解析網頁內容

# print(wb_data)

titles = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a') # 複製每個元素的css selector 路徑即可

images = soup.select('body > div > div > div.col-md-9 > div > div > div > img')

reviews = soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p.pull-right')

prices = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')

stars = soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p:nth-of-type(2)')

# 為了從父節點開始取,此處保留:nth-of-type(2),觀察網頁,多取幾個星星的selector,就發現規律了

#body > div:nth-child(2) > div > div.col-md-9 > div:nth-child(2) > div:nth-child(1) > div > div.ratings > p:nth-child(2) > span:nth-child(2),> span:nth-child(2)字段去掉,這個nth-child換成nth-of-type(2)

# print(titles,images,rates,prices,stars,sep='\n--------\n') # 列印每個元素,其中sep='\n--------\n'是為了在不同元素之間新增分割線

for title, image, review, price, star in zip(titles, images, reviews, prices, stars): # 使用for迴圈,把每個元素裝到字典中

data =

print(data)

import string

with open(r'd:\baiduyundownload\python實戰::四周實現爬蟲系統\課程資料\課程原始碼及作業參***\week1\1_2\1_2answer_of_homework\1_2_homework_required\index.html', 'r') as web_data:

soup = beautifulsoup(web_data, 'lxml')

titles = soup.select(

'body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a ')

images = soup.select(

'body > div > div > div.col-md-9 > div > div > div > img')

reviews = soup.select(

'body > div > div > div.col-md-9 > div > div > div > div.ratings > p.pull-right')

prices = soup.select(

'body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')

grades_crawler = soup.select(

'body > div > div > div.col-md-9 > div > div > div > div.ratings > p:nth-of-type(2) > span ')

# 上一行抓取所有的星星描述

grades = # 設定乙個空列表

while len(grades_crawler) != 0: # 迴圈條件長度不為0

e = grades_crawler[0:5] # 提取星星描述前五個元素,也就是乙個商品的星級

grades.insert(1, e) # 把這五個商品星級的列表作為乙個元素插入grades列表中

del grades_crawler[0:5] # 刪除抓取到的描述列表的前五位

for title, image, review, price, grade in zip(titles, images, reviews, prices, grades):

star =

b = str(grade) # 字串化列表

c = b.replace('class="glyphicon glyphicon-star">', '★') # 將描述實五角星的替換為圖案

d = c.replace('class="glyphicon glyphicon-star-empty">', '☆') # 將描述虛五角星的替換為圖案

data =

print(data)

我的第二節課

1.1如何檢視環境變數基本概念 python 的創造者吉多 範羅蘇姆 guido van rossum 採訪bbc電視節 目 蒙提 派森的飛行馬戲團 monty python s flying circus,一譯巨蟒劇 團 的名字來為這門程式語言命名 編譯型語言 代表語言 c語言 會在 執 前將 編...

第二節 熱機的效率

一 熱值 不同燃料燃燒時的放熱本領不同,比如1kg煤燃燒時可以燒開幾壺水,1kg紙1壺水都不能燒開,也就是說煤的放熱本領比紙的放熱本領強 說明完全燃燒 看書23頁 熱值表 練習1 酒精的熱值是3.0 107j kg,酒精燈裡裝有20g酒精,若完全燃燒掉一半,放出的熱量是 剩餘部分酒精的熱值是 練2 ...

第二節 在Xocde中跑起OpenCV

建立乙個xcode工程,就叫opencvtestdemo,語言選擇c 接著我們需要引入庫和標頭檔案,首先選中工程,然後選中targets,然後再buildsettings裡面搜尋search,在找到 head search path 和 libary search path,新增我們安裝好openc...