Python Beautiful Soup停止解析

时间:2013-10-13 12:36:51

标签: python html-parsing beautifulsoup

我尝试通过以下脚本解析附加的text.txt文件(使用html语法)。

#!/usr/bin/python3

import re
from bs4 import BeautifulSoup

pattern = re.compile("www.geocaching.com")
f=open("text.txt")
text=f.read()
f.close()
s = BeautifulSoup(text)
a = s.find_all(href=pattern)
print(len(a))
print (a[len(a)-1])

我的期望是使用href =“www.geocaching.com”获得所有标签,但是我没有从附加的文件中获取所有标签。 最后一个是:

<a class="lnk " href="http://www.geocaching.com/geocache/GC3HWHJ_corse-known-unknown-2-view-on-ile-de-giraglia"><span>Corse known &amp; unknown 2 - View on Ile de Giraglia</span></a>

如果我删除626-674行,只包含一些简单的html代码,我会得到接下来的两行,即最后一行是

<a class="lnk " href="http://www.geocaching.com/geocache/GC3MEDG_tour-genoise-dagnello"><span>TOUR GENOISE D'AGNELLO</span></a>

但我再也没有得到我在html文件中手动找到的所有结果。

我使用的文件来自这里(我下载它以在本地使用它) https://www.geocaching.com/seek/nearest.aspx?lat=43.410333&lon=09.0476&dist=100

1 个答案:

答案 0 :(得分:0)

尝试以下列方式使用CSS Selector:

from bs4 import BeautifulSoup

f = open("text.txt")
text = f.read()
f.close()

soup = BeautifulSoup(text)

# this find all the href containing the text "www.geocaching.com"
links =  soup.select('[href]~="www.geocaching.com"')