我是靠谱客的博主 怕黑帽子,这篇文章主要介绍re.match匹配多行数据失败,现在分享给大家,希望可以做个参考。

出错代码与现象:
正则表达式提取网站源码中的_xsrf的值
使用单行数据测试正则表达式,能够正确提取,但是换成网页全文数据的时候,出现错误。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests try: import cookielib except: import http.cookiejar as cookielib import re session = requests.session() header = { "HOST": "www.zhihu.com", "Referer": "https://www.zhihu.com/", "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0" } def get_xsrf(): r = session.get("https://www.zhihu.com", headers=header) # print(r.text) text1 = '<input type="hidden" name="_xsrf" value="5986f7d0c7314107a47024ef01fedcc8"/>' text = 'xxxn<input type="hidden" name="_xsrf" value="5986f7d0c7314107a47024ef01fedcc8"/>' match_obj = re.match('.*name="_xsrf" value="(.*?)"', text, re.DOTALL) if match_obj: print(match_obj.group(1)) else: print("None") get_xsrf()

错误原因以及解决方案
re.match默认是只匹配一行数据,如果需要对全文进行匹配的话,需要手动设置相应的flag位。
re.match(pattern, string, flags=re.DOTALL) #匹配全文

最后

以上就是怕黑帽子最近收集整理的关于re.match匹配多行数据失败的全部内容,更多相关re内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(96)

评论列表共有 0 条评论

立即
投稿
返回
顶部