要点: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=&copyright=&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("图片下载完毕")

 完整代码:

import requests
import time
import json


url = "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="
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 6.1;WOW64) AppleWebKit/537.36(KABUL, like Gecko) "
"Chrome/86.0.4240.198Safari/537.36 "
}
resp = requests.get(url=url, headers= headers)
# print(resp.text)
resp_dict = resp.json()
# print(resp_dict)
# print(type(resp_dict))
data_list = resp_dict['data']
# print(data_list,type(data_list))
lst = []

for item in data_list:
if len(item) !=0:
lst.append(item['thumbURL'])
# print(lst)
count = 0
for item in lst:
resp = requests.get(url=item, headers=headers)
count +=1
with open("img/" + str(count) + '.jpg', 'wb') as file:
file.write(resp.content)
print("图片下载完毕")

python爬取百度图库图片_百度