<p>以下内容应提供完整的URL:</p>
<pre><code>import urllib2
from BeautifulSoup import BeautifulSoup
import urlparse
def get_speeches(input_url):
p = urllib2.urlopen(input_url)
soup = BeautifulSoup(p, 'html.parser')
info = soup.find_all('a', class_='ListText')
for element in info:
print urlparse.urljoin(input_url, element['href'])
SOURCE_URL = 'http://speeches-usa.com'
get_speeches(SOURCE_URL)
</code></pre>
<p><code>element.get_text()</code>完全按照它所说的做—它获取元素的文本。如果需要属性,可以使用方括号,如<code>element['href']</code></p>
<p>EDIT:下面的注释指出,这遗漏了一些元素,因为并非所有链接都有<code>ListText</code>类。下面的代码将查找所有链接,检查<code>'Transcripts'</code>是否在提供的链接中(我假设您需要的是指向转录本的链接),如果是,则将其附加到列表中。这可能具有重复的特性,因此<code>set()</code>仅用于打印唯一的条目</p>
<pre><code>import urllib2
from BeautifulSoup import BeautifulSoup
import urlparse
def get_speeches(input_url):
p = urllib2.urlopen(url=input_url)
soup = BeautifulSoup(p, 'html.parser')
info = soup.find_all('a', href=True)
all_transcripts = list()
for element in info:
if 'Transcripts' in element['href']:
all_transcripts.append(urlparse.urljoin(input_url, element['href']))
for transcript_url in set(all_transcripts):
print transcript_url
SOURCE_URL = 'http://speeches-usa.com'
get_speeches(SOURCE_URL)
</code></pre>