第二課學(xué)習(xí)需要數(shù)據(jù)結(jié)構(gòu)和循環(huán)的知識,這部分我還沒看到,就一邊跟著老師敲代碼一邊學(xué)習(xí)了。
提前總結(jié)一點(diǎn),不敲不知道,一敲嚇一跳。
供統(tǒng)計的網(wǎng)頁如下:

統(tǒng)計評分大于3的文章
我的代碼:
from bs4 import BeautifulSoup
info=[]
with open('/home/steven/Downloads/Plan-for-combating-master/week1/1_2/1_2code_of_video/web/new_index.html','r') as wb_data:
Soup = BeautifulSoup(wb_data,'lxml')
images = Soup.select('body > div.main-content > ul > li > img')
titles = Soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')
rates = Soup.select('body > div.main-content > ul > li > div.rate > span')
cates = Soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')
descs = Soup.select('body > div.main-content > ul > li > div.article-info > p.description')
for title,rate,desc,cate,image in zip(titles,rates,descs,cates,images):
data = {
'title':title.get_text(),
'rate':rate.get_text(),
'desc': desc.get_text(),
'cate': list(cate.stripped_strings),
'image':image.get('src')
}
info.append(data)
for i in info:
if float(i['rate'])>3:
print(i['title'],i['cate'])
代碼運(yùn)行結(jié)果:

篩選結(jié)果
總結(jié):
- 在檢查模式下從網(wǎng)頁中拷貝網(wǎng)頁元素的路徑時,可能在其中產(chǎn)生一些空格,在pycharm中編譯時會導(dǎo)致失敗,必須去除掉;
- 注意縮進(jìn)的使用:想要打印 全部信息時,不需要縮進(jìn);而要打印for循環(huán)中的所有信息時,不縮進(jìn)只會打印出第一條數(shù)據(jù)。只有縮進(jìn)后才會打印出全部的數(shù)據(jù);此問題至少困擾我半個小時以上。