from BeautifulSoup import BeautifulSoup
import urllib2
import re
user = raw_input('begin here!: ')
base = ("http://1337x.org/search/")
print (base + user)
add_on = "/0/"
total_link = (base + user + add_on)
html_data = urllib2.urlopen(total_link, 'r').read()
soup = BeautifulSoup(html_data)
announce = soup.find('a', attrs={'href': re.compile("^/announcelist")})
print announce
我正在尝试检索torrent链接,最好是第一个非赞助商链接。从页面,然后打印链接。我对这个编码很新,所以尽可能多的细节是完美的!非常感谢你的帮助!
答案 0 :(得分:1)
问题在于你的正则表达式。您正在尝试使用^
字符来取消正则表达式,但它在您的情况下不起作用。 ^
仅取消一组字符([]
内的一组字符);即使在这种情况下,它只会否定它是否是第一个字符。例如,[^aeiou]
表示“除 a
,e
,i
,o
和u
之外的任何字符
当您使用<{1}} 外部字符集时,它会匹配行的开头。例如,^
匹配以^aeiou
字符串开头的行。
那么,你会如何否定正则表达式呢?好吧,我看到的最好的方法是使用否定前瞻,这是一个以aeiou
开头并以(?!
结尾的正则表达式。对于您的情况,这很容易:
)
所以,将(?!/announcelist)
替换为re.compile("^/announcelist")
它应该有用 - 至少在这里工作:)