python3用BeautifulSoup抓取id='xiaodeng',且正则包含‘elsie’的标签

# -*- coding:utf-8 -*-
#python 2.7
#XiaoDeng
#http://tieba.baidu.com/p/2460150866
#使用多个指定名字的参数可以同时过滤tag的多个属性


from bs4 import BeautifulSoup
import urllib.request
import re


#如果是网址,可以用这个办法来读取网页
#html_doc = "http://tieba.baidu.com/p/2460150866"
#req = urllib.request.Request(html_doc)  
#webpage = urllib.request.urlopen(req)  
#html = webpage.read()


html="""
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="xiaodeng"><!-- Elsie --></a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
<a href="http://example.com/lacie" class="sister" id="xiaodeng">Lacie</a>
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html, 'html.parser')


#抓取id='xiaodeng',且正则包含‘elsie’的标签
content=soup.find_all(href=re.compile("elsie"), id='xiaodeng')
#print(content)  #[<a class="sister" href="http://example.com/elsie" id="xiaodeng"><!-- Elsie --></a>]

for  k  in content:
    print(k.get('href'))  #抓取href的内容
    #http://example.com/elsie

 

posted @ 2016-11-13 21:31  Xiao|Deng  阅读(8953)  评论(0编辑  收藏  举报