python中的瑞典语Unicode问题

2024-04-27 01:07:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来这个论坛(这是我的第一个问题),所以请容忍我。我正在用瑞典语刮一个网站。它使用的是ISO-8859-1字符集。你知道吗

在源代码中,它可能看起来像这样:

<div class="fl icon-post-old"></div>
    2015-11-13, 15:09
    <a href="

假设我想要抓取日期和时间(这不是一个真实的例子)。你知道吗

threadcode=opener.open(threadurl).read()
threadcode2=threadcode.decode("ISO-8859-1")
post=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',str(threadcode2))
post2=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',str(threadcode))
print (post) #this is blank
print (post2) #this works fine

所以,如果我在“可读性很好的瑞典变量post”中搜索某个东西,它似乎不起作用。但是,如果我使用Unicode表示进行相同的搜索(这不是很有用),那么相同的搜索也可以工作。你知道吗

你们当中有谁知道这是怎么回事吗?你知道吗

我还可以补充一点,如果在某些情况下搜索确实有效的话。。。 例如:

post=re.findall(r'Jag vill(.*?)bil',str(threadcode2))

这样就行了。。。你知道吗

我很困惑。你知道吗


Tags: divrepost2isothispostoldclass
2条回答

跟瑞典语没关系。我认为re是在多行上。如果你这样做:

post=re.findall(
  r'<div class="fl icon-post-old"></div>(.*?)<a',
  threadcode2.replace('\n','')
)

你会得到你期望的结果。你知道吗

将unicode字符串传递到^{}时,应传递^{}标志:

post=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',threadcode2, flags=re.UNICODE)

相关问题 更多 >