寫完後再看了下正則,發現有個簡單的方法可以擷取,隻需替換第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個字元