[英]Finding a certain link in a webpage, using BeautifulSoup
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
我正在尝试检索种子链接,最好是第一个非赞助链接。 从页面开始,然后让它打印链接。 我在此编码方面还比较陌生,因此您可以提供尽可能多的细节! 非常感谢你的帮助!
问题出在您的正则表达式中。 您正在尝试使用^
字符来否定正则表达式,但是在您的情况下它不起作用。 ^
只取反一组字符( []
内的一组字符); 即使在这种情况下,如果它是第一个字符,也只会取反。 例如, [^aeiou]
意思是“ 除 a
, e
, i
, o
和u
以外 a
任何字符”。
当您在字符集外使用^
,它将与行的开头匹配。 例如, ^aeiou
匹配以aeiou
字符串开头的行。
那么,您将如何否定正则表达式? 好吧,我所看到的最好方法是使用负前瞻 ,这是一个以(?!
开始并以)
结尾的正则表达式。 对于您的情况,这很简单:
(?!/announcelist)
因此,将re.compile("^/announcelist")
替换为re.compile("^/announcelist")
re.compile("(?!/announcelist)")
,它应该可以工作-至少在这里可以工作:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.