BeautifulSoup - 寻找标志

时间:2014-11-01 18:43:42

标签: python python-3.x beautifulsoup

我正在开发一个自动程序,使用BeautifulSoup和Python 3识别网站徽标。第一步,我正在寻找图像名称中带有“徽标”一词的图像。它确实很有效。但是,我想将其扩展为可能包含术语图像的图像,或者包含在带有标识的类/ id /属性的链接中,或者甚至更深地隐藏在包含一类'的div的链接中商标'。例如:

<div id="logo">
    <a href="http://www.mexgrocer.com/">
        <img src="http://ep.yimg.com/ca/I/mex-grocer_2269_22595" width="122" height="72" border="0" hspace="0" vspace="0" alt="Mexican Food">
    </a>
</div>

我现在的代码是:

img = soup.find("img",src=re.compile(r'logo',re.I))

如何展开它以搜索所有父标记属性?

3 个答案:

答案 0 :(得分:1)

使用find_all查找整个文档中的所有特定标记。你可以试试这个

from bs4 import Beautifulsoup
import urllib2
soup = BeautifulSoup(urllib2.urlopen('your_url').read())
for x in soup.find_all(id='logo'):
    try:
        if x.name == 'img':
            print x['src']
    except:pass

如果你想在课堂上搜索,只需使用class ='logo'

答案 1 :(得分:1)

此问题的答案需要更新为:

create analytics_data_export.events_normalized AS
    SELECT .....
    FROM
        `analytics_xxxxxx.events_*

答案 2 :(得分:0)

您可以使用findall(标记,属性),例如:

from bs4 import Beautifulsoup
soup = BeautifulSoup(f)

var =soup.find_all("font",color="#990000") //all <font color=#990000></font> 
var2 = soup.find_all("a",class_="LinkIndex") // all <a class="LinkIndex"></a>