请教关于python中正则表达式匹配的问题

JWplus91 2024-05-17 18:07:59
import requests
import re
source = requests.get('https://www.zysj.com.cn/lilunshuji/index__2.html').content.decode()

list1=re.findall('<div id="list-content">.*?</div>',source,re.S)
indexlist=re.findall('title="《(.*?)》',list1[0],re.S)

print(list1[0])
print(re.findall('href=".*?" title="《百病自测》"',list1[0],re.S))

这是我的一段代码。想从一个网站中获取指定书名对应的url。前面通过匹配获得的list1数据为:

 

然后从其中匹配《百病自辩》中的url

print(re.findall('href=".*?" title="《百病自测》"',list1[0],re.S))

按理来说我使用的是非贪婪模式,获得的应该只是href="/lilunshuji/baibingzice/index.html" title="《百病自测》"一小段,为什么实际的匹配结果却是这样?

请各位大神赐教!

...全文
285 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

你可以这样写:
1、获取书名是这样 : >(.*?) 这是正则表达式的规则。
2、获取 url 这样写: 。通过这俩个规则,配合 re.findall即可,然后取出下标为 0 的元素就行。希望可以帮到你

1,001

社区成员

发帖
与我相关
我的任务
社区描述
社区内分享我们的开源平台tare机器人自主导航系统,希望能帮助所有自主移动机器人领域的研究人员快速搭建出属于自己的,稳定可靠的机器人仿真和实验的平台,更快进入自己的研究领域
自动驾驶人工智能 企业社区
社区管理员
  • 哈工大-朱洪彪
  • 小麦Y
  • 曹超CMU
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧