爬取糗事百科出的一些问题

最主要还是对 有换行的 正则得匹配模式 用re.S 就很厉害

from urllib import request
import re
url='https://www.qiushibaike.com/text/'
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
         "Referer": "https://www.qiushibaike.com/imgrank/"}
rep=request.Request(url,headers=headers)
resp=request.urlopen(rep)
text=resp.read().decode('utf-8','ignore')
#print(len(text))    这个目的是    在写的过程中可以不断的判断自己提出的是否有内容
pat='<div class="content">.*?<span>\n\n\n(.*?)</span>.*?</div>'
#这个正则就很妙      第一个 .*?  是为了 匹配空格  第二个 是提取内容    第三个也是  匹配空格
#然后  三个\n\n\n 是匹配后进一步优化 的
# 但是因为有换行 所以需要 re.S 来修正
#re.S  作用	使 . 匹配包括换行在内的所有字符
#re.I	使匹配对大小写不敏感  还有其他的
txt=re.compile(pat,re.S).findall(text)
#print(txt)
fh=open("F:\\一个项目\\一个项目\\糗事百科\\1.txt",'w')
#    PermissionError: [Errno 13] Permission denied: 'F:\\一个项目\\一个项目\\糗事百科'
#    因为糗事百科文件夹中没有 w 需要创建的格式   就是这个(1.txt)
for i in range(0,len(txt)):
    fh.write(txt[i])
    print('第'+str(i)+'个爬取成功')
fh.close()

感谢看的各位 有不足之处 欢迎 一起交流学习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值