存在问题
有些网站服务器会屏蔽爬虫(如csdn),使用爬虫会返回错误码403
解决方案
添加报文头的User-Agent信息,把爬虫伪装成浏览器。
怎么做
在需要爬取的网页中F12打开控制台,在network页中打开任一项资源,在Header栏中的Request Headers中找到User-Agent。
urlopen()方法无法实现添加报头的动作,需要建立自定义opener对象进行访问。
opener对象使用addheaders方法,向opener对象设置报头。然后利用open()方法向指定的URL地址发送请求,返回一个类文件对象。
可以把装配好的opener对象,使用install_opener(opener)方法安装至全局,则后面调用urlopen()时都会使用该全局opener。【不再用open()方法发送请求,而是用回urlopen()】
import urllib.request
url="https://blog.csdn.net/BananaChoas?spm=1011.2124.3001.5343&type=blog"
headers=("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.44