使用python与beautiful soup重新编译以匹配字符串
我想在返回的http头中找到一个url。根据,有一种方法可以使用使用python与beautiful soup重新编译以匹配字符串,python,regex,Python,Regex,我想在返回的http头中找到一个url。根据,有一种方法可以使用soup.find_all(re.compile(“yourRegex”)来收集数组中的正则表达式匹配项。但是,我必须从我的正则表达式中删除一些内容,它在 从bs4导入BeautifulSoup 导入请求 进口稀土 导入csv 导入json 导入时间 导入文件输入 导入urllib2 data = urllib2.urlopen("http://stackoverflow.com/questions/16627227/http-er
soup.find_all(re.compile(“yourRegex”)
来收集数组中的正则表达式匹配项。但是,我必须从我的正则表达式中删除一些内容,它在
从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
开始…我缺少什么是必需的
我也一直在使用,把[a-zA-Z0-9\-\.]+\.(com | org | net | mil | edu | com | org | net | mil | edu)+([\w\-\.@?^=%&;:/\+\\\\\\\\\\\\\.]*[\w\\\^=%%+/\\\\\\\\\\\\\\\\\\\\\.]放在regex部分,另一部分放一个url,但没有匹配项。
谢谢
试试这个,这个对我有用
x="""<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/QAPage">
<head>
"""
x=”“”
"""
输出:schema.org/QAPage
您的正则表达式没有问题,但您没有得到概念。查找所有内容仅在标记中搜索。
示例:
查找所有(“^b”)这将为您提供以名称b开头的所有标记
因此,输出将是标签,如p、tbody、body等。
。如果将re.compile放在find_all中,它将只在标记元素中查找模式,而不是整个html文档。
您需要使用vks解释的方法。stringsoup的内容是什么。
re.match将不会给出任何结果,因为它从一开始就匹配。您可以尝试re.findallinstead@maudulus:oh la la la
,除了-
之外,字符类中的特殊字符不需要转义,除非它位于末尾或结尾类的基宁。编写类似于[&;]
的东西没有任何意义,字符类是没有顺序的字符集合,它与[;p&ma]
相同。
x="""<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/QAPage">
<head>
"""