抓取国外网站的高清图片:
#请求第三方库
import requests
#数据提取第三方库
from pyquery import PyQuery as pq
count = 1
def download_url_images(page):
"""
突破防火墙限制下载国外全网高清图片
:param page:
:return:
"""
global count
url='https://gratisography.com/page/{}/'.format(page_number)
#请求的头部信息,用于解决反爬的问题
headers={
'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
'cookie': '__cfduid=db02bbaa28b76cd17d85af5a1c54697ae1564471214; _ga=GA1.2.110668960.1564471220; _gid=GA1.2.992515974.1564471220; _gat_gtag_UA_33062738_24=1'
}
#请求服务并且获取服务器返回(响应)的数据
response_data=requests.get(url,headers=headers).text
#print(response_data)
#数据提取
#初始化数据
doc=pq(response_data)
#print(doc)
#通过类选择起来获取数据
#items()是返回数据的查询集
single=doc('.single-photo-thumb a img').items()
#循环数据
for i in single:
#通过属性来获取图片的连接
img_url=i.attr('src')
#获取到了图片的url
#请求图片的地址(img_url)
img_data=requests.get(img_url,headers=headers)
#保存图片到本地,文件读取方式:a 追加 w文件存在就写入,不存在就创建,存在的情况会覆盖 b进制文件的读取方式(二进制 16进制) r只读模式
with open('高清图片/{}.jpg'.format(count),'ab',) as f:
f.write(img_data.content)
count +=1
if __name__=="__main__":
page_number=int(input("请输入你要抓取的页数:"))
for page in (1,page_number):
download_url_images(page)