【问题标题】:Web Scraping between tags标签之间的网页抓取
【发布时间】:2025-12-16 05:15:01
【问题描述】:

我正在尝试从网页中获取标签之间的所有内容。我的代码是输出空数组。当我打印 htmltext 时,它会显示页面的完整内容,但不会显示标签的内容。

 import urllib
 import re

 urlToOpen = "webAddress"
 htmlfile = urllib.urlopen(urlToOpen)
 htmltext = htmlfile.read()
 regex = '<h5> (.*)  </h5>'
 pattern = re.compile(regex)
 names = re.findall(pattern,htmltext)
 print "The h5 tag contains: ", names

【问题讨论】:

  • 两个注意事项:1) regex 不是解析html 的好工具,改用beautifulsoup。 2) 在正则表达式模式中,空格很重要。

标签: regex python-2.7 web-scraping


【解决方案1】:

调用字符串 urlToOpen 时出错。写 str(urlToOpen) 而不是 urlToOpen。

import urllib2
import re

urlToOpen = "http://*.com/questions/25107611/web-scraping-between-tags"
htmlfile = urllib2.urlopen(str(urlToOpen))
htmltext = htmlfile.read()
regex = '<title>(.+?)</title>'
pattern = re.compile(regex)
names = re.findall(pattern,htmltext)
print names

【讨论】:

    【解决方案2】:

    标签和正则表达式之间不要有空格。像这样写:

    regex = '<h5>(.+?)</h5>'
    

    【讨论】: