我尝试通过以下脚本解析附加的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 & 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
答案 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"')