|
10鱼币
本帖最后由 什么鬼… 于 2017-3-9 23:34 编辑
- import urllib.request
- import re
- search = input('输入你要查找的内容:')
- qury ={ 'search':search,
- 'title':'Special:搜索',
- 'go':'前往'}
- qury = urllib.parse.urlencode(qury)
- url = 'https://zh.wikipedia.org/w/index.php?'+str(qury)
- content = urllib.request.urlopen(url).read().decode('utf-8')
- title_list = re.findall(r'<a href="(?:[^!]+)" title="([^"]+)" data-serp-pos="(?:[0-9]+)">',content)
-
复制代码
代码如上,我搜索的内容是:"我是” (随意输入的,只是想先调试一下,idle中的输入我没有带引号,这里是为了表明我的输入内容)
运行后print(title_list)然后输出值只有两个title,表示完全不理解,明明应该把所有的title都输出的
我把一个满足的标签进行调试比如- >>> re.findall(r'<a href="(?:[^!]+)" title="([^"]+)" data-serp-pos="(?:[0-9]+)">','<a href="/wiki/%E5%81%87%E5%A6%82%E6%88%91%E6%98%AF%E6%AD%A6%E6%9D%BE" title="假如我是武松" data-serp-pos="0">')
- ['假如我是武松']
- >>>
复制代码
但是问题来了- >>> re.findall(r'<a href="(?:[^!]+)" title="([^"]+)" data-serp-pos="(?:[0-9]+)">','<a href="/wiki/%E5%81%87%E5%A6%82%E6%88%91%E6%98%AF%E6%AD%A6%E6%9D%BE" title="假如我是武松" data-serp-pos="0"><a href="/wiki/%E6%88%91%E6%98%AF%E4%B8%80%E7%89%87%E4%BA%91" title="我是一片云" data-serp-pos="2">')
- ['我是一片云']
- >>>
复制代码
结果只输出了一个值,这个最起码应该输出两个吧,我确实不知道问题出在哪了,希望有人可以来解答一下..... |
最佳答案
查看完整内容
正则表达式错了,原正则:
r'> import re
>>> str2=''
>>> re.findall(r'', str2)
['假如我是武松', '我是一片云']
|