但是老师用的是http而我的电脑浏览器只有https
url = 'https://www.baidu.com/s?wd=ip%27
import urllib.request
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'}
#request = urllib.request.Request(url = url,headers = headers)
#请求对象定制
request = urllib.request.Request(url = url,headers=headers)
#模拟浏览器访问服务器
response= urllib.request.urlopen(request)
proxies ={'http':'118.24.219.151:16817'}
#handler build_opener open
handler = urllib.request.ProxyHandler(proxies = proxies)
opener = urllib.request.build_opener(handler)
response = opener.open(request)
#获取响应信息
content = response.read().decode('utf-8')
with open('daili.html','w',encoding='utf-8')as fp:
fp.write(content)
应该是118.24.219.151:16817地址已经变更了, 你这个代码已经过期
了
1、你爬取页面信息,保存到自己创建的html文件里,结果html文件里显示安全验证,而不是网页数据,说明你是被反爬了。
2、反爬措施有很多,我通过你提供的这点信息,测试得到结果,是:headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'}出了问题。
3、你看视频教学也好,自己练习也好,应该注意到,F12抓到数据包后,请求头里不只User-Agent一个参数,那你多加几个不久行了?
如图是我添加的参数,连续尝试了六次,均可正常获取到数据