python知识-爬虫

python知识-爬虫

1.requests

使用requests请求数据的流程

(1)请求网络数据,requests.get(“请求地址”)

(2)设置解码方式(乱码时设置,在获取结果之前设置)

(3)获取请求结果

  • (1)获取请求结果对应的文本数据-爬网页(网页源代码)
  • (2)获取二进制格式的请求结果-下载图片,视频,音频的时候使用
  • (3)获取请求内容json转换的结果-json接口数据
# 1 请求网络数据,requests.get("请求地址")
res = requests.get("https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js")

# 2.设置解码方式(乱码时设置,在获取结果之前设置)
# meta->charset
# res.encoding=''

# 3.获取请求结果
# (1)获取请求结果对应的文本数据-爬网页(网页源代码)
# print(res.text)
# (2)获取二进制格式的请求结果-下载图片,视频,音频的时候使用
# print(res.content)
# (3)获取请求内容json转换的结果-json接口数据
2.反爬处理

反爬是浏览器为减少被爬取的次数。其实就是网站为了维护自己的核心安全而采取的抑制爬虫的手段和措施。

常见的反爬策略:

  • 浏览器伪装(user-aget)
  • 免密登录(cookie)
  • 设置代理(proxies)
3.os模块

python提供的系统模块,提供python处理文件和文件夹的操作(注不是操作文件和文件夹内容,而且对文件和文件夹本身操作)

(1)os.mkdir(文件路径)——在指定路径创建指定文件夹,若文件已经存在,那么会报错

(2)os.path.exists(文件夹路径/文件路径)——判断文件或者文件夹是否存在

4.正则表达式

(1)正则表达式的作用

正则表达式是一种可以让复杂的字符串变得简单工具,写正则表达式的时候就是用正则符号描述字符串的规则。

(2)re模块——提供python中所有的正则相关的函数

常见的正则函数:

  • fullmatch(正则表达式,字符串)——判断指定字符串是否满足正则表达式描述的规则
  • findall(正则表达式,字符串)——提取字符串中所有满足正则表达式的字符串
  • search(正则表达式,字符串)——匹配字符串中第一个满足正则表达式的字符串

注意:python中表达式一个正则表达式一般使用r字符串

(3)正则的语法

1)普通符号——在正则表达式中表示符号本身的符号

2)特殊符号

+++++++++++++++++++++匹配类符号+++++++++++++++++++++++++++++

  • .——匹配任意一个字符

    res=re.fullmatch(r'.bc','*bc')#任意符号
    #表示字符串的第一位可以是任意包括但不限于字符,中文,符号等
    
  • \d——匹配任意一个数字

res=re.fullmatch(r'\d\dabc','68abc')

#表示字符串前两个为数字
  • \s——匹配任意一个空白字符(空格,换行,水平制表符)

    res=fullmatch(r'123\sabc','123 abc')
    #匹配123 abc或者123\tabc或者123\nabc,注意水平制表符要用\t,如果手动按tab则是四个字符
    
  • \w ——匹配任意一个字母,数字,下划线或者中文

    res=fullmatch(r'abc\w123','abc和123')
    #abc和123之间可以是字母数字下划线和中文都行
    
  • \D、\S、\W——分别和\d,\s,\w的功能相反

    res=fullmatch(r'123\Dabc','123dabc')
    #只要123和abc之间不是数字都可以,如果是数字那么会出错,\S,\W也是如此
    
  • [字符集]——匹配在字符集中的任意一个字符

    res=fullmatch(r'abc[M9你]','abc9123')
    #符合表达式的就三种情况'abc9123','abcM123','abc你123'
    #res.fullmatch(r'abc[\d]','abc0'),表示abc后可以是一个数字
    #[1-5]-匹配字符1到字符5中的任意一个字符
    #[a-z]-匹配任意一个小写字母
    #[A-Z]匹配任意一个大写字母
    #[a-zA-Z]-匹配任意一个字母
    #[a-zA-Z\d]-匹配任意一个字母或者数字
    #[a-z=%]-匹配任意一个小写字母、或者 = 或者 %
    #[\u4e00-\u9fa5]-匹配任意一个中文
    
  • [^字符集]-匹配不在字符集中的任意一个字符

    res=fullmatch(r'abc[^MN]123','abcl123')
    #abc和123之间只要不是MN都可以
    #注意^只有放在最开头才可以,放在中间只代表普通字符
    

    ++++++++++++++++++匹配次数符号++++++++++++++++++

    匹配类符号匹次数(即要跟在匹配类符号后面使用,不能单独使用)

  • *-任意次数(0次或者一次或者次数)

a*#——a出现任意多次
\d*-#任意多个数字
res=fullmatch(r'1a*2','12')
#1和2之间可以是0个a,1个a,甚至是多个a
res=fullmatch(r'M\d*N','M2N')
#M和N之间可以是任意个数字
  • +——一次或者多次(至少一次)

    res=fullmatch(r'1a+2','1a2')
    #a至少一次
    
  • ?——0次或者1次

    res=fullmatch(r'1a?2','1a2')
    #a只能是0次或者1次,多了就会报错
    
  • {}

    • {N}-N次
    • {M,N}-M到N次
    • {M,}-至少M次
    • {,N}-最多N次
res=fullmatch(r'1a{3}2','1aaa2')
#a出现三次
#匹配任意一个除了0的整数&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值