Python爬虫实例:使用requests库和re库爬取某旧书网

本文介绍了使用requests库和正则表达式re库爬取旧书网书名和价格的过程。在实践中,遇到因网页书名乱码导致的输出乱序问题,提示了正则表达式的复杂性和灵活性。作者因此转向学习BeautifulSoup库,以提高网页解析效率。
摘要由CSDN通过智能技术生成

背景

在简单学习和了requests库和正则表达式re库后,就尝试使用这两个第三方库完成爬取某旧书网书名价格并输出。于是选择了一个静态网页进行爬取,但是最终输出结果出现了部分乱序,是由于正则表达式遇到网页书名乱码导致的存入形式问题。

算法思路

1.爬取网页数据并解码得到文本
定义get方法爬取静态网页

def getHTML(url):
    try:
        kv={'user-agent':'Mozilla/5.0'}
        r=requests.get(url,headers=kv,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return ""

2.按正则表达式查找得到书名和价格并存入列表ilt

def parsePage(ilt, html):
    try:
        plt= re.findall(r'price="(\d.*)"',html)
        tlt= re.findall(r'alt="<b>(.*)</b>(.*)" error="0"',html)
        for i in range(len(plt)):
            ilt.append([plt[i],tlt[i][0]+tlt[i][1]])
    except:
        return ""

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值