【发布时间】:2012-01-26 07:59:19
【问题描述】:
可能重复:
Convert XML/HTML Entities into Unicode String in Python
我正在尝试使用 Python 抓取网站。我导入并使用了 urllib2、BeautifulSoup 和 re 模块。
response = urllib2.urlopen(url)
soup = BeautifulSoup(response)
responseString = str(soup)
coarseExpression = re.compile('<div class="sodatext">[\n]*.*[\n]*</div>')
coarseResult = coarseExpression.findall(responseString)
fineExpression = re.compile('<[^>]*>')
fineResult = []
for coarse in coarseResult:
fine = fineExpression.sub('', coarse)
#print(fine)
fineResult.append(fine)
不幸的是,像撇号这样的字符以这样的损坏方式出现 - ' ; 有没有办法避免这种情况?或者有什么方法可以轻松替换它们?
【问题讨论】:
-
这没有损坏,它是用于撇号 (en.wikipedia.org/wiki/…) 的 HTML/XML 字符实体。您总是可以将这些实体解码回它们的 ASCII 等价物。 (stackoverflow.com/questions/57708/…)
-
你正在 BeautifulSoup 中加载一个页面只是为了对其进行正则表达式!? 你为什么要做这种可怕的事情?!
-
@FrancisAvila,我仍在摸索 Python。你能告诉我一个更好的方法吗?
-
使用 BeautifulSoup 搜索或遍历 HTML 树并获得所需的内容。这就是为什么它首先存在!阅读 BeautifulSoup 文档。
-
打开一个新问题,将您作为一个整体尝试做的事情。我怀疑您会执着于使用正则表达式,而实际上这正是完成任务的错误工具。
标签: python regex screen-scraping web-scraping beautifulsoup