找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2376|回复: 4

[求助] python3 re正则取网页内容问题,求大神帮忙看看!

1

主题

2

帖子

2

积分

贫民

积分
2
jason.lv 发表于 2018-1-12 21:55:18 | 显示全部楼层 |阅读模式
我post一个算命的网页,获取网页源码后,准备用正则取出来想要的内容,但是findall返回的列表为空,而我再站长之家上调试正则是可以匹配到结果,匹配原内容也是从pycharm中拷贝过去的,按理说没有什么区别才对。求大神帮忙看看,谢谢!
图片1.png 图片2.png 图片3.png
回复

使用道具 举报

2

主题

219

帖子

219

积分

版主

Rank: 7Rank: 7Rank: 7

积分
219

热心会员默默耕耘优秀版主

剑心无痕 发表于 2018-1-15 08:57:25 | 显示全部楼层
估计\n的问题,爬虫下来的数据不一定是\n
把\n换成\s*就行了
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
jason.lv  楼主| 发表于 2018-1-15 10:48:09 | 显示全部楼层
剑心无痕 发表于 2018-1-15 08:57
估计\n的问题,爬虫下来的数据不一定是\n
把\n换成\s*就行了

是的,最后改成这样就行了,搞不懂为什么\n就行,是不是python中调用正则的问题。<p><strong>(.*)</strong></p>[\s\S]*?<p>(.+)</p>
回复 支持 反对

使用道具 举报

2

主题

219

帖子

219

积分

版主

Rank: 7Rank: 7Rank: 7

积分
219

热心会员默默耕耘优秀版主

剑心无痕 发表于 2018-1-15 11:02:16 | 显示全部楼层
本帖最后由 剑心无痕 于 2018-1-15 11:03 编辑
jason.lv 发表于 2018-1-15 10:48
是的,最后改成这样就行了,搞不懂为什么\n就行,是不是python中调用正则的问题。(.*)[\s\S]*?(.+) ...

你爬虫到的是二进制数据,你复制出来看上去的是回车\n,但是实际上可能是[\n\r ]等一系列\s的组合 (因为你复制的数据是print的,你的编译器还会对数据的格式自动更改)
回复 支持 反对

使用道具 举报

1

主题

10

帖子

10

积分

贫民

积分
10
jackielu 发表于 2018-1-15 17:23:11 | 显示全部楼层
<p>.*?<strong>(.*?)</strong>.*?</p>.*?<p>(.*?)</p>
标签与标签之间最好是加上.*? 因为不确定原HTML中是否会换行等操作
加上.*?其实是一种偷懒的方式 至少这是一种解决方案
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表