免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2222 | 回复: 4
打印 上一主题 下一主题

为什么我这里正则匹配列表是空捏? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-05 11:23 |只看该作者 |倒序浏览
为什么我这里正则匹配列表是空捏?


#!/usr/bin/env python
#-*- encoding: u8 -*-
import sys,re,urllib
url = str("http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=inurl%3Aaction&f=8&rsv_bp=1&rsv_spt=1&wd=%E6%95%99%E5%AD%A6&rsv_sug3=4&rsv_sug=0&rsv_sug1=4&rsv_sug4=75&inputT=4535")
oper = urllib.urlopen(url).read().replace(""," ")
urls = re.findall(r"<a.*?href=.*?</a>",oper,re.I)
print urls

我想抓取baidu这个连接搜的url地址提取出来

但是我print出urls地址是空? 还请知道的指点下 谢谢

论坛徽章:
0
2 [报告]
发表于 2012-11-05 11:25 |只看该作者
而且我直接print oper 显示的是乱码。如何设置编码呢? 谢谢大家。

论坛徽章:
0
3 [报告]
发表于 2012-11-05 11:32 |只看该作者
#!/usr/bin/env python
#-*- encoding: u8 -*-
import sys,re,urllib
url = str("http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=inurl%3Aaction&f=8&rsv_bp=1&rsv_spt=1&wd=%E6%95%99%E5%AD%A6&rsv_sug3=4&rsv_sug=0&rsv_sug1=4&rsv_sug4=75&inputT=4535")
oper = urllib.urlopen(url).read().replace(""," ").decode('utf-8')
urls = re.findall(r"<a href=.*?</a>",oper,re.S)
print oper

D:\script>python test.py
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    oper = urllib.urlopen(url).read().replace(""," ").decode('utf-8')
  File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe7 in position 341: invalid continuation byte

这里也提示错了 但是不知道怎么解决编码问题

论坛徽章:
0
4 [报告]
发表于 2012-11-05 12:18 |只看该作者
1 搜索结果是不允许抓取的
2 搜索结果的url是加过密的,除非你能解,
3 <a href=.*?</a>",oper,re.S)这个抓到的是搜索结果页面上每条结果下面的小链接,比如说: 展现结果第一条:教学 百度百科下边的  汉语词语 - 一、哲学探讨 - 二、特殊作用 - 三、学校教育,抓这个没意义

论坛徽章:
0
5 [报告]
发表于 2012-11-08 12:50 |只看该作者
回复 1# zchao4251500


    首先,你这个思路,就是错的。
想要正确的找到百度搜出来的结果中的url,首先要自己用工具分析出来,其中的内部逻辑。
具体可参考:
【整理】关于抓取网页,分析网页内容,模拟登陆网站的逻辑/流程和注意事项


【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程


分析出内部逻辑了,然后再参考:
【教程】模拟登陆网站 之 Python版(内含两种版本的完整的可运行的代码)

自己去用python模拟出来即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP