抓取国外网站的高清图片

抓取国外网站的高清图片:

#请求第三方库
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)

  

posted @ 2019-07-31 15:16  奔跑中的兔子  阅读(582)  评论(0编辑  收藏  举报