国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

網(wǎng)頁爬蟲 - python爬蟲用BeautifulSoup爬取<s>元素并寫入字典,但某些div下沒有這一元素,導(dǎo)致自動寫入下一條,如何解決?

瀏覽:172日期:2022-08-03 08:34:07

問題描述

新手寫二手車網(wǎng)站爬蟲,爬賣價(jià)和原價(jià),原價(jià)以<s>刪除線形式放在<p class='priType-s'>下。但是遇到?jīng)]有標(biāo)記原價(jià),也就是并沒有<s>標(biāo)簽的情況下,會自動把下一個(gè)<s>內(nèi)的信息寫入上一條占位。試了用if len()判斷,但是毫無效果。。請問這種情況應(yīng)當(dāng)如何解決,把沒有<s>標(biāo)簽的情況正確提取出來,用“”或“nodata”顯示?

網(wǎng)頁源代碼如下,同時(shí)包含原價(jià)與賣價(jià)的:

<p class='priType-s'> <em class='tag-red'>急售</em> <em class='tag-yellow'>超值</em><span> <i class='fc-org priType'> 8.40萬</i></span> <s>17.36萬</s></p>

沒有原價(jià)標(biāo)簽的:<p class='priType-s'>

<span><i class='fc-org priType'> 3.70萬</i> </span></p>

代碼如下,

import requestsfrom bs4 import BeautifulSoup

def GetInfo(url):

res=requests.get(url).textsoup=BeautifulSoup(res,’html.parser’)names=soup.select(’p.list > ul > li > p > p.infoBox > a’)years=soup.select(’p.list > ul > li > p > p.fc-gray’)prices0=soup.select(’p.list > ul > li > p > p.priType-s > s’)prices1=soup.select(’p.list > ul > li > p > p.priType-s > span > i’)for name,year,price0,price1 in zip(names,years,prices0,prices1): data={’name’:name.get_text(),’year’:year.get_text().strip().replace(’|’,’’).replace(’ ’,’’),’price0’:price0.get_text(),’price1’:price1.get_text().strip() }print(data)return(data)

def Pages():

pageurl=’https://www.guazi.com/sh/buy/o{}/’urls=[pageurl.format(str(i)) for i in range(1,11,1)]for url in urls: GetInfo(url)

Pages()

問題解答

回答1:

大體思路就是 多加選擇器,讓它為空,然后你做判斷

回答2:

prices0=soup.select(’p.list > ul > li > p > p.priType-s > span> i’)prices1=soup.select(’p.list > ul > li > p > p.priType-s > span + s’)

試試看。如果再不行就把整段給你拿下來用 regex 來提取

回答3:

試試這個(gè)思路:1.每一個(gè)二手車會有一個(gè)塊來顯示,<p>..</p>之類的2.在每一個(gè)塊當(dāng)中,再來進(jìn)行原價(jià),現(xiàn)價(jià)的抓取這樣就不會因一個(gè)二手車沒有原價(jià)而把下一個(gè)價(jià)位填充到上一個(gè)車的原價(jià)上

標(biāo)簽: Python 編程
主站蜘蛛池模板: 观塘区| 定西市| 林州市| 卓资县| 高邑县| 清徐县| 修武县| 马关县| 九江市| 师宗县| 普定县| 和静县| 昌都县| 荥阳市| 海安县| 贡嘎县| 蒙城县| 布拖县| 凤阳县| 金沙县| 徐水县| 镇平县| 读书| 张家港市| 达拉特旗| 奉化市| 肥东县| 桂东县| 沂水县| 城固县| 安龙县| 宜丰县| 同江市| 临猗县| 贡觉县| 嘉峪关市| 玉树县| 汝南县| 嵩明县| 延川县| 墨脱县|