我有一个这样的链接 <a href=abc.asp?xyz=foobar&baz=lookatme´_beautiful.jpg>
,其中有一个不寻常的符号´
,它甚至不存在于标准的英文键盘中。Ctrl+k
它是在这个编辑器中产生的符号的镜像。所以在我运行在stackoverflow上找到的这段代码之后:
soup = BeautifulSoup.BeautifulSoup("<a href=abc.asp?xyz=foobar&baz=lookatme´_beautiful.jpg>");
for a in soup.findAll('a'):
print a['href']
输出是abc.asp?xyz=foobar&baz=lookatme
,但我想拥有abc.asp?xyz=foobar&baz=lookatme´_beautiful.jpg
. 我正在抓取的网站位于.br
域中。有些作品是葡萄牙语的,即使链接是英文的,但那个不常见的符号可能不是有效的英文符号。有什么想法或建议吗?
编辑:我查看了 Python 字符串产生的表示,它是<a href=abc.asp?xyz=foobar&baz=lookatme\xb4_beautiful.jpg>
一种解决方法是生成自定义正则表达式,这个片段也来自stackoverflow:
import re
urls = re.findall(r'href=[\'"]?([^\'" >]+)', s)
如果无法修改 beautifulsoup 正则表达式,我该如何修改上述正则表达式以合并\xb4
符号。(这里是有问题的字符串)