一些简单的反爬机制, 就是通过一个浏览器来源来判断是不是爬取自己的网站, 这个时候我们可以通过构建用户代理来伪装进行爬取信息
import urllib.request import re import random uaplls=[#用户代理池 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Safari/605.1.15", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36", ] def ua(uapools):#随机选择一个用户 thisua=random.choice(uapools) print("当前使用"+thisua) headers=("User-Agent",thisua) opener=urllib.request.build_opener() opener.addheaders=[headers] urllib.request.install_opener(opener) url="http://xiaohua.zol.com.cn/jianduan/" for i in range(1,10): ua(uaplls)#下面的分析请看我上一篇爬取CSDN的文章 data=urllib.request.urlopen(url+str(i)+".html",timeout=5).read().decode("gbk","ignore") pat='<span class="article-title"><a target="_blank" href="(/.*?)"' all=re.compile(pat).findall(data) for i in range(0,len(all)): url2=urllib.request.urlopen("http://xiaohua.zol.com.cn/"+all[i],timeout=5).read().decode("gbk","ignore") pat2='<meta name="description" content="(.*?)"' all2=re.compile(pat2).findall(url2) if(len(all2)!=0): print(all2[0]) print("-"*100)
爬取结果: 这是一个笑话网站

注意: 不要恶意利用, 尊重原创, 本篇只为学习练手, 作者概不负责任何和爬虫相关法律责任
我加你了哦
可以
我也是小白以后多多交流
给你点赞
我也是学计算机的