鱼C论坛

 找回密码
 立即注册
查看: 2852|回复: 5

求助!爬虫爬取时用re.search只取到了第一次匹配到的数据

[复制链接]
发表于 2017-3-29 13:54:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 萌萌哒的大黑哥 于 2017-3-29 14:21 编辑

各位大佬帮小弟看一看,本人python新手,看了几天小甲鱼老师的视频,做了一个简易的天气查询,但是在从中国天气网上爬取过程中爬取出来的数据出现乱码,而且是部分,大体来说我也不太清楚。。。描述不清。。。简单说一下问题,第一个是乱码问题,第二个是爬取的数据只有部分,只爬取了第一次索引到的数据,各位帮我看一看,谢谢各位了
第一次发帖,有问题希望各位提出,我会认真吸取并改正
python版本是2.7
# -*- coding: utf-8 -*-
import urllib
import re
def gethtml(url):
    page=urllib.urlopen(url)
    html=page.read()
    return html
def getWeather(html):
    dayre=re.search('<h1>(?P<a>.+?)</h1>',html)
    weare=re.search('class="wea">+(?P<b>.+?)+</p>',html)
    cre=re.search('</span>/<i>+(?P<c>.+?)+</i>',html)
    if (dayre):
        a=dayre.group("a")
        print '今天是',a
    if (weare):
        b=weare.group("b")
        print '天气是',b
    if (cre):
        c=cre.group("c")
        print '温度是',c
html=gethtml('http://www.weather.com.cn/weather/101240101.shtml')
getWeather(html)
6G01R97IU7W8YK@J8C813SN.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-29 13:58:34 | 显示全部楼层
第六行好像应该解码一下html=page.read().decode('gb2312')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 14:04:25 | 显示全部楼层
感觉自己像个zz。。。乱码问题已经解决了,原来是手残多打了+号,导致和后面的正则表达式有冲突什么的,删除了+号就完美了剩下的就是数据只有第一次索引到的问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 14:09:12 | 显示全部楼层
alltolove 发表于 2017-3-29 13:58
第六行好像应该解码一下html=page.read().decode('gb2312')

首先谢谢你的回答
乱码问题已经解决,不过我刚刚尝试了加上decode,但是解码之后,什么都输出不了,是一片空白的,删除了+号之后添加decode,python就报错了,大概是gb2312不能够解码之类的意思
UnicodeDecodeError: 'gb2312' codec can't decode bytes in position 193-194: illegal multibyte sequence
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 14:14:44 | 显示全部楼层
个人感觉应该是小甲鱼老师用的findall而我用的是search的原因,看了一下资料也没太懂。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 22:54:28 | 显示全部楼层
alltolove 发表于 2017-3-29 13:58
第六行好像应该解码一下html=page.read().decode('gb2312')

我刚才又重新打开了一下代码,发现乱码依旧存在,突然想起你的回复,添加了decode('utf-8')发现乱码消失,原来你所提出的乱码问题还是需要decode的存在,多谢你的回答!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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