爬虫基础---requests库和re库

本文介绍了Python爬虫中requests库的基础使用,包括get()函数,并讲解了如何检查请求状态。同时,文章探讨了re库的应用,特别是正则表达式在字符串匹配中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、requests库基础

1.1 常用函数get()

import requests
header = {'use-agent':'chrome/10'}#定制请求头
r = requests.get('https://www.baidu.com/',header )
r.raise_for_status#返回访问状态
r.encoding = r.apparent_encoding#使用合适的编码格式
print(r.text)#打印

1.2 其它

r.raise_for_status

检查访问的状态是否成功,通常返回200代表访问成功
这里给出一个通用的代码

def getHMTL(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return(r.text)
    except:
        return('访问出错')

re库及其应用

正则表达式可以理解为简洁表达一组字符串的表达式。
主要应用:字符串匹配

start_url = 'https://movie.douban.com/top250?start='
def getUrl(num):
    return url + str((num)*25) + '&filter='

def getHTML(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return(r.text)
    except:
        return ''

def getmovie(infoList,html):
    ranks = re.findall('<em class="">(.+)</em>',html)
    names = re.findall('<span class="title">([\u4e00-\u9fa5]+)</span>',html)
    if len(ranks) == len(names):
        for i in range(len(ranks)):
            info = [ranks[i],names[i]]
            infoList.append(info)
    return infoList

def printList(infoList):
    print('{:^6}\t{:^8}'.format('排名','电影名'))
    for i in range(len(infoList)):
        print('{:^6}\t{:^8}'.format(infoList[i][0],infoList[i][1]))

        
if __name__ == '__main__':
    num = 5
    infoList = []
    for i in range(num):
        getmovie(infoList,getHTML(getUrl(i)))
        
    printList(infoList)
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值