python抓取百度结果的正则式应该怎么写

python抓取百度结果的正则式应该怎么写

疾风者 发布于 2021-11-30 字数 671 浏览 835 回复 6

比如我搜cassia,搜到的结果如图

在程序中,我是这样写的

import urllib2
import re
import HTMLParser
import os

url=r'http://www.baidu.com/s?ie=UTF-8&wd=cassia'
content=urllib2.urlopen(url).read()

regex = r'<div class="result(.*?)</div>'
result = re.findall(regex,content)
print result
with open('/python/123.txt','w') as f:
	for ele in result:
		f.write(ele+"n")

抓到的结果总是空,这是怎么回事。正则式应该怎么写?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

傾城如夢未必闌珊 2021-12-01 6 楼

建议使用这个地址,  http://www.baidu.com/s?wd=123456&&tn=baidulocal

百度标准的搜索结果页面 格式并不固定, 而且很多字段是json串放在里面. 过滤取结果不方便.

德意的啸 2021-12-01 5 楼

查看页面源代码

千笙结 2021-12-01 4 楼

问题不在这里

不乱于心 2021-12-01 3 楼

回复
额,那是在哪里。。

凯凯我们等你回来 2021-12-01 2 楼

因为默认.不能匹配换行符,而你要匹配的内容里有换行符,所以不能匹配。

可以用r'<div class="result([sS]*?)</div>',但是不保证这是你想得到的东西。建议你先使用正则测试工具测试你的正则,然后再在代码中使用。

你也可以不用正则,使用html解析库,比如beautifulsoup

一个人的旅程 2021-11-30 1 楼

因为你没看页面源码,看了你就懂了