天天看點

[爬蟲入門]BeautifulSoup擷取标外内容

    寫完後再看了下正則,發現有個簡單的方法可以擷取,隻需替換第4步

name_pat = '(<div class="info1">)(.+)(</div>)'
#将div分為三組,中間的第二組即為想要的内容
name_re = re.match(name_pat,str(name_tag))
if name_re is not None:
    print name_re.group(2)
           

-------------------------------------------------------------------------------------------------------------------------------------------------

    前幾天入門開始學爬蟲,把圖爬下來了可是圖檔的名字不在标簽内不會如何擷取,看百度說用正則

無奈之前沒學過就放着了。今天學了正則想來試試,發現雖然tag無法直接切片,但是可以用内建函數

str()轉換成字元串再切片,雖然感覺這方法有點呆,不過也達到了目的,等正則學好了再試試正則的方法。

例子:

<div class ="cla22">
    <form>
        <div class="info1">張三</div>
    </form>
</div>
           

1.先擷取網頁html

soup = BeautifulSoup(content, "html5lib")
           

 2.使用find找到包含對應class、id的tag

div_tag = soup.find('div',class_='cla22')
           

3.可以直接先print列印div_tag的内容

print(div_tag)
           

4.下面開始提取div外的内容

name_tag = div_tag.find('div',class_='info1')
name = str(name_tag)[19:-6]    #名字從第19位開始,去掉後面多餘的6個字元