Python爬取网站图片数据
Python爬取网站图片数据
找到需要爬取的网站地址
模拟网站http请求
根据调试模式获取的了解读取到真实的地址url,读取请求头数据和参数信息,模拟http请求调用
import requests
from urllib.parse import urlencode
# requests内置的状态码,可判断url响应是否正确
from requests import codes
import os
from hashlib import md5
from multiprocessing.pool import Pool
import redef get_page(offset):# 必须的头请求头信息headers = {'cookie': 'tt_webid=6667396596445660679; csrftoken=3a212e0c06e7821650315a4fecf47ac9; tt_webid=6667396596445660679; WEATHER_CITY=%E5%8C%97%E4%BA%AC; UM_distinctid=16b846003e03d7-0dd00a2eb5ea11-353166-1fa400-16b846003e1566; CNZZDATA1259612802=2077267981-1561291030-https%253A%252F%252Fwww.baidu.com%252F%7C1561361230; __tasessionId=4vm71cznd1561363013083; sso_uid_tt=47d6f9788277e4e071f3825a3c36a294; toutiao_sso_user=e02fd616c83dff880adda691cd201aaa; login_flag=6859a0b8ffdb01687b00fe96bbeeba6e; sessionid=21f852358a845d783bdbe1236c9b385b; uid_tt=d40499ec45187c2d411cb7bf656330730d8c15a783bb6284da0f73104cd300a2; sid_tt=21f852358a845d783bdbe1236c9b385b; sid_guard="21f852358a845d783bdbe1236c9b385b|1561363028|15552000|Sat\054 21-Dec-2019 07:57:08 GMT"; s_v_web_id=6f40e192e0bdeb62ff50fca2bcdf2944','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36','x-requested-with': 'XMLHttpRequest','referer': 'https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D',}# 获得的真是url必须的参数构造params = {'aid': '24','app_name': 'web_search','offset': offset,'format': 'json','keyword': '街拍','autoload': 'true','count': '20','en_qc': '1','cur_tab': '1','from': 'search_tab','pd': 'synthesis',}# 真实url的起始urlbase_url = 'https://www.toutiao.com/api/search/content/?'# python内置库解码后的真实urlurl = base_url + urlencode(params)try:resp = requests.get(url, headers=headers)# 是正确的响应,即200if 200 == resp.status_code:return resp.json()except requests.ConnectionError:return None
解析返回参数中的图片信息
def get_images(json):# 街拍的总数据if json.get('data'):data = json.get('data')for item in data:if item.get('title') is None:continuetitle = re.sub('[\t]', '', item.get('title'))print(item.get('title'))images = item.get('image_list')if images is None:continuefor image in images:# 修复了url更改导致了爬取到的部分是小图的问题for each in image.get('url'):if each == 'x':origin_image = re.sub("list/190x124", "large", image.get('url'))breakelse:origin_image = re.sub("list", "large", image.get('url'))yield {'image': origin_image,'title': title}
下载图片信息到本地
def save_image(item):# 文件保存的相对路径# img_path = 'Jie_Pai' + os.path.sep + item.get('title')img_path = 'Jie_Pai'print(img_path)if not os.path.exists(img_path):os.makedirs(img_path)try:# 下载真实图片resp = requests.get(item.get('image'))# 内置状态码,判断响应是否正确if codes.ok == resp.status_code:file_path = img_path + os.path.sep + '{file_name}.{file_suffix}'.format(# 图片内容的md5值,避免重复file_name=md5(resp.content).hexdigest(),file_suffix='jpg')if not os.path.exists(file_path):with open(file_path, 'wb') as f:f.write(resp.content)print('Downloaded image path is %s' % file_path)else:print('Already Downloaded', file_path)# 报错except Exception as e:print(e)
调用主方法执行开始数据爬取
def main(offset):# 以什么倍数来增长json = get_page(offset)for item in get_images(json):save_image(item)GROUP_START = 0
GROUP_END = 7if __name__ == '__main__':pool = Pool()groups = ([x * 20 for x in range(GROUP_START, GROUP_END + 1)])pool.map(main, groups)pool.close()pool.join()
Python爬取网站图片数据相关推荐
- Python爬取网站图片并保存,超级简单
Python爬取网站图片并保存,超级简单 先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSou ...
- python爬取网站图片链接并保存,Python爬取网站图片并保存的实现示例
先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSoup requests用来请求html页面, ...
- Python爬取网站图片(爬虫入门demo)
代码功能: 爬取网站的教师图片,在用户主机上创建好PNG文件夹保存共110张图片,同时把每张图片的老师介绍内容写入H3.txt文件中. 实现思路: 打开该网页后用F12查看网页的html原代码,发现图 ...
- python爬取网站图片(尽力在讲解)
1.首先,先导入两个库(一个就是常用的reques库,另一个就是BeautiSoup库) import requests from bs4 import BeautifulSoup 2.确定你要爬取的 ...
- python爬取网站大数据_基于腾讯位置大数据平台的全球移动定位数据获取(Python爬取)...
对于腾讯位置大数据平台,有一些商业接口可以调用 看起来还是挺爽的,但是现阶段只接受商业合作客户来调用,我们个人是获取不到的. 那就没办法了吗?当然不是,实际上腾讯位置大数据把调用接口就直接写在了前端, ...
- python爬虫怎么爬取图片_怎么用python爬取网站Jpg图片
用python爬取网站图片,通过引用requests库就可完成.下面,小编将以爬取百度图片为例 工具/原料 python环境,网络 安装requests库 1 cmd打开命令行界面,输入pip ins ...
- python 第一行 报错_初学Python-只需4步,爬取网站图片
很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来.我:行,那我们卖什么呀?领导:看 ...
- python爬取网站源代码+图片
python爬取网站源代码+图片 需求分析 基础知识 正则表达式 python网络请求 文件读写 实现 基本思路 具体实现 结果 总结 需求分析 大部分有志青年都想建立属于自己的个人网站,从零开始设计 ...
- python 图片文件_初学Python-只需4步,爬取网站图片(附py文件)
很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来. 我:行,那我们卖什么呀? 领导 ...
最新文章
- python中将嵌套列表展开
- 使用iCarousel的旋转木马效果请求图片
- Hadoop学习(source方式安装篇)
- date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间
- Fortinet:行走在网络和安全融合领域的最前列
- (0)图像处理界面——C#调用C++图像处理的DLL
- 20160403_C++初始化列表与赋值
- POI中设置Excel单元格格式样式(居中,字体,边框等)
- 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
- 剪辑师:入门级无水印无片头片尾免费视频剪辑工具
- mc小刘yeah粉丝网
- python求三个整数最大值_Python 输入三个整数,输出最大值
- 三极管原理及贴片封装注意
- 行逻辑链接的顺序表(压缩存储稀疏矩阵)详解
- Android HIDL 介绍学习之客户端调用
- Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建完整版
- 将切割后的小图片还原为大图片
- Github常用英文翻译
- 聊聊程序员的 3 个烦恼
- 熊海CMS 1.0代码审计漏洞集合