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爬取网站图片数据相关推荐

  1. Python爬取网站图片并保存,超级简单

    Python爬取网站图片并保存,超级简单 先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSou ...

  2. python爬取网站图片链接并保存,Python爬取网站图片并保存的实现示例

    先看看结果吧,去bilibili上拿到的图片=-= 第一步,导入模块 import requests from bs4 import BeautifulSoup requests用来请求html页面, ...

  3. Python爬取网站图片(爬虫入门demo)

    代码功能: 爬取网站的教师图片,在用户主机上创建好PNG文件夹保存共110张图片,同时把每张图片的老师介绍内容写入H3.txt文件中. 实现思路: 打开该网页后用F12查看网页的html原代码,发现图 ...

  4. python爬取网站图片(尽力在讲解)

    1.首先,先导入两个库(一个就是常用的reques库,另一个就是BeautiSoup库) import requests from bs4 import BeautifulSoup 2.确定你要爬取的 ...

  5. python爬取网站大数据_基于腾讯位置大数据平台的全球移动定位数据获取(Python爬取)...

    对于腾讯位置大数据平台,有一些商业接口可以调用 看起来还是挺爽的,但是现阶段只接受商业合作客户来调用,我们个人是获取不到的. 那就没办法了吗?当然不是,实际上腾讯位置大数据把调用接口就直接写在了前端, ...

  6. python爬虫怎么爬取图片_怎么用python爬取网站Jpg图片

    用python爬取网站图片,通过引用requests库就可完成.下面,小编将以爬取百度图片为例 工具/原料 python环境,网络 安装requests库 1 cmd打开命令行界面,输入pip ins ...

  7. python 第一行 报错_初学Python-只需4步,爬取网站图片

    很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来.我:行,那我们卖什么呀?领导:看 ...

  8. python爬取网站源代码+图片

    python爬取网站源代码+图片 需求分析 基础知识 正则表达式 python网络请求 文件读写 实现 基本思路 具体实现 结果 总结 需求分析 大部分有志青年都想建立属于自己的个人网站,从零开始设计 ...

  9. python 图片文件_初学Python-只需4步,爬取网站图片(附py文件)

    很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来. 尤其是做我们这一行,产品经理,电商行业. 领导:弄一个买卖游戏周边商品的交易APP出来. 我:行,那我们卖什么呀? 领导 ...

最新文章

  1. python中将嵌套列表展开
  2. 使用iCarousel的旋转木马效果请求图片
  3. Hadoop学习(source方式安装篇)
  4. date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间
  5. Fortinet:行走在网络和安全融合领域的最前列
  6. (0)图像处理界面——C#调用C++图像处理的DLL
  7. 20160403_C++初始化列表与赋值
  8. POI中设置Excel单元格格式样式(居中,字体,边框等)
  9. 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
  10. 剪辑师:入门级无水印无片头片尾免费视频剪辑工具
  11. mc小刘yeah粉丝网
  12. python求三个整数最大值_Python 输入三个整数,输出最大值
  13. 三极管原理及贴片封装注意
  14. 行逻辑链接的顺序表(压缩存储稀疏矩阵)详解
  15. Android HIDL 介绍学习之客户端调用
  16. Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建完整版
  17. 将切割后的小图片还原为大图片
  18. Github常用英文翻译
  19. 聊聊程序员的 3 个烦恼
  20. 熊海CMS 1.0代码审计漏洞集合

热门文章

  1. Qt开发二维码工具QR二维码生成和识别支持批量生成免费使用
  2. RNN与LSTM系列(二)——LSTM的参数个数
  3. C语言用状态机来实现简单的密码开锁
  4. JAVA 方法重载和方法覆写的区别(有代码)
  5. Win10 cmd 同步系统时间命令
  6. Win10 “cmd“窗口向上拖动滚动条,不能查看完整命令
  7. 【Linux系统编程】socket介绍
  8. 若申请调剂,第一志愿自动放弃?
  9. Bridge网络实现原理
  10. vue axios引入注册