【发布时间】:2014-12-19 12:24:53
【问题描述】:
我想在返回的 http 标头中找到一个 url。根据beautiful soup,有一种方法可以使用soup.find_all(re.compile("yourRegex") 来收集数组中的正则表达式匹配。但是,我的正则表达式中一定遗漏了一些东西,它在text editor that I am using 的正则表达式中找到了匹配项,但与以下代码内部不匹配:
从 bs4 导入 BeautifulSoup 导入请求 重新进口 导入 csv 导入json 进口时间 导入文件输入 导入 urllib2
data = urllib2.urlopen("http://stackoverflow.com/questions/16627227/http-error-403-in-python-3-web-scraping").read()
soup = BeautifulSoup(data)
stringSoup = str(soup)
#Trying to use compile
print soup.find_all(re.compile("[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"))
我尝试将() 放在正则表达式周围,并以r 开头...我错过了什么是必要的?
我也一直在使用http://www.pythonregex.com/,将[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])? 放在正则表达式部分,将网址放在另一部分,但那里也没有匹配项。
谢谢!
【问题讨论】:
-
stringsoup的内容是什么 -
re.match 不会给出任何结果,因为它从一开始就匹配。你可以尝试 re.findall 代替