免费注册 查看新帖 |

Chinaunix

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

python正则表达式匹配问题 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-02-01 16:25:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-21 08:55 |只看该作者 |倒序浏览
用python写了个提取网页的小程序,代码如下:
  1. # encoding:UTF-8
  2. import sys
  3. import re
  4. from urllib2 import Request, urlopen, URLError, HTTPError

  5. def get_packet(url):
  6.         packet = urlopen(url)
  7.         content = packet.read()
  8.         return content
  9. def get_data(packet):
  10.         xiangmu = '~'
  11.         tmp = re.search(r'<a href=.*',packet)
  12.         if tmp is not None:
  13.                 xiangmu = tmp.group().strip()
  14.         print xiangmu
  15. if __name__=='__main__':
  16.         url = 'http://stock.finance.qq.com/corp1/cbsheet.php?zqdm=600787&type=2014'
  17.         packet = get_packet(url)
  18.         if packet =='~':
  19.                 sys.exit(0)
  20.         get_data(packet)
复制代码
输出只打印了一部分含有<a href=的文本,还有些没有打印出来,如何把全部都打印出来?

论坛徽章:
0
2 [报告]
发表于 2014-10-21 09:12 |只看该作者
你的本意是需要提取链接内容,即解析网页提取所需内容,是吧?
如果是,那么建议换成BeautifulSoup等专业解析网页的库。
原因详见:
【整理】关于用正则表达式处理html代码方面的建议
【问题解答】建议:处理html时复杂的需求,建议使用专门的库比如BeautifulSoup去处理而不要用正则

然后再去看相关更完整的教程:
详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)

论坛徽章:
0
3 [报告]
发表于 2014-10-21 11:31 |只看该作者
用findall吧?
search不是就找第一个匹配的吗?
回复 1# sqsowen


   

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-02-01 16:25:13
4 [报告]
发表于 2014-10-21 14:35 |只看该作者
回复 3# amandaysu
好像得了,谢谢

   

论坛徽章:
1
15-16赛季CBA联赛之广夏
日期:2016-02-01 16:25:13
5 [报告]
发表于 2014-10-21 20:29 |只看该作者
谢谢指点,是你写的库?回复 2# crifan


   

论坛徽章:
0
6 [报告]
发表于 2014-12-03 20:22 |只看该作者
回复 5# sqsowen


    哪里?什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP