要点:1、百度图库美女图片爬取
2、二进制数据的存储(图片、视频)
爬虫是什么?爬虫就是一个应用程序!
作用:从网络中获取数据(存储到自己的服务器) SEO:争百度排名——百度快照
第一个爬虫程序:
1、导入模块
import requests
2、发送请求(url,请求方式)
url = "https://www.baidu.com/"
3、使用request中的get方法
resp = requests.get(url) #resp是得到的响应对象
resp.encoding = 'utf-8' #设置响应的编码格式
4、输出响结果html+css+js+data
print(resp.text)
注:客户端的浏览器信息:User-Agent
print(resp.request.headers)#'python-requests/2.23.0'
总结:替换浏览器,向服务器发送请求,获取响应结果,打印输出。
第二个爬虫程序(提取数据,存储数据)
一、分析url
百度图片,下拉滚动条,Network选项中,由All转向XHR,看Headers选项卡,General中,request URL 就是真实的URL,pn=90,pn=120,pn=150,pn=180
真实地址:https://image.baidu.com/search/acjson? tn=resultjson_com&logid=10172863370465205600&ipn=rj&ct=201326592&is=&fp=result&fr=&word=%E7%BE%8E%E5%A5%B3&cg=girl&queryWord=%E7%BE%8E%E5%A5%B3&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=©right=&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn=30&rn=30&gsm=78&1669124140812=
返回结果为json格式
二、解析数据 json数据——格式转换,将response转成json格式
resp_json = resp.json()
三、数据提取
data_list = resp_json['data']#根据key从字典中获取值 得到一个列表 列表中存储N多个字典对象
#print(data_list)
继续提取数据,提取有用的url
lst = []
for item in data_list:
if len(item) !=0: #判断是否是空字典
lst.append(item['thumbURL'])
print(lst) #所有图片的URL
重新发送请求,获取数据,并存储
count = 0 #用于作为图片的名称
for item in lst:
resp = requests.get(item,headers= headers)
count +=1
with open('img/'+ str(count)+'.jpg', 'wb') as file:
file.write(resp.content)
print("图片下载完毕")
完整代码: