使用Python 2.7中的BeautifulSoup从td内的链接获取文本

使用Python 2.7中的BeautifulSoup从td内的链接获取文本,python,python-2.7,beautifulsoup,Python,Python 2.7,Beautifulsoup,我正试图通过抓取beautifulsou获取所有位置名称的列表,我以前使用以下方法: locs = LOOPED.findAll("td", {"class": "max use"}) 用于HTML的 <td class="max use" style="">London</td> 编辑:如果我打印LOC,我会得到如下列表: \n\n(默认值)\n\n\n\n(默认值)\n\n\n\n(NA)\n\n] 正如您所看到的,它有3个不同的位置,从上面我可以看到[伦敦、曼彻

我正试图通过抓取
beautifulsou
获取所有位置名称的列表,我以前使用以下方法:

locs = LOOPED.findAll("td", {"class": "max use"})
用于HTML的

<td class="max use" style="">London</td>
编辑:如果我打印LOC,我会得到如下列表:

\n\n(默认值)\n\n\n\n(默认值)\n\n\n\n(NA)\n\n]

正如您所看到的,它有3个不同的位置,从上面我可以看到
[伦敦、曼彻斯特、利物浦]

我想我应该使用类似于:

locs = LOOPED.findAll("td", {"class": "max use"})
locs = locs.findAll('a')[1]
print locs.text
但这只会让人想起

AttributeError:'ResultSet'对象没有属性'findAll'

我不知道如何让
Beautifulsoup
重新搜索超链接文本…

试试以下方法:

tag = LOOPED.findAll('td') #all "td" tag in a list
tag_a = tag[0].find('a')
print tag_a.text
试试这个:

tag = LOOPED.findAll('td') #all "td" tag in a list
tag_a = tag[0].find('a')
print tag_a.text

对于未来的HTML结构更改,一种更可靠的方法是获取每个
td
元素中的所有文本,如中所述:


对于未来的HTML结构更改,一种更可靠的方法是获取每个
td
元素中的所有文本,如中所述:


是不是因为你的“a”不直接在“td”下面,我猜你需要先通过“div”然后是“span”。@AvinashRaj是的,如果我在
locs=LOOPED.findAll(“td”,“class”:“max use”})之后打印
locs
locs
,它会打印在
div
下有链接的HTML。嘿,这里的问题是
locs
是一个
列表
。如果需要
locs
中每个位置的文本,您必须循环
locs
并在每个位置打印文本。这不是因为您的“a”不直接位于“td”下,我猜您需要先通过“div”,然后再通过“span”。@AvinashRaj是的,如果我在
locs=LOOPED.findAll(“td”)之后打印
locs
:“max use”})
它打印在
div
span
下有链接的HTML。嘿,这里的问题是
loc
是一个
列表。如果需要
locs
中每个位置的文本,您必须循环
locs
并在每个位置打印文本。这对我不起作用,它需要首先搜索
max use
类,然后查找对我不起作用的
a
,它需要首先搜索
max use
类,然后查找
a
locs = LOOPED.findAll("td", {"class": "max use"})
for loc in locs:
    print ''.join(loc.findAll(text=True))