#爬虫遇到的问题:在爬取图片的时候遇到安全验证,这是要咋办
#-*- coding:utf-8 -*-
import requests
import os
import re
import time
import random
name = input("请输入关键字:")
num =int(input("请输入想搜索的页数:"))
def Create_folder(filename):
#除去空格
filename = filename.strip()
#除去\\
filename = filename.rstrip("\\")
#判断路径是否存在
isExists = os.path.exists(filename)
if not isExists:
os.makedirs(filename)
print(filename+"创建成功")
return True
else:
print(filename+"已存在")
return False
def url_img(name):
url="https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&dyTabStr=MCwzLDYsMSw0LDUsMiw4LDcsOQ%3D%3D&word="+name
header = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.39"
}
html=requests.get(url,headers=header)
html.encoding='utf8'
print(html.text)
res=re.findall('"objURL":"(.*?)"', html.text)
for i in res:
num=num+1
picture=requests.get(i)
file_name='D:/python/pachong/'+str(num)+".jpg"
f=open(file_name,"wb")
f.write(picture.content)
print(i)
f.close()
filename="D:/python/pachong/"+name
Create_folder(filename)
url_img(name)
time.sleep(random.randint(3,5))
结果:*************************************************************
结果:<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>百度安全验证</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="format-detection" content="telephone=no, email=no">
<link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon">
<link rel="icon" sizes="any" mask href="https://www.baidu.com/img/baidu.svg">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<link rel="stylesheet" href="https://ppui-static-wap.cdn.bcebos.com/static/touch/css/api/mkdjump_0635445.css" />
</head>
<body>
<div class="timeout hide">
<div class="timeout-img"></div>
<div class="timeout-title">网络不给力,请稍后重试</div>
<button type="button" class="timeout-button">返回首页</button>
</div>
<div class="timeout-feedback hide">
<div class="timeout-feedback-icon"></div>
<p class="timeout-feedback-title">问题反馈</p>
</div>