[Python爬虫]头条图集爬取
时间:2019-09-24
本文章向大家介绍[Python爬虫]头条图集爬取,主要包括[Python爬虫]头条图集爬取使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import requests from urllib.parse import urlencode import os from hashlib import md5 from multiprocessing.pool import Pool def get_page(offset): headers={ 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36', 'cookie':'tt_webid=6724223385113069069; WEATHER_CITY=%E5%8C%97%E4%BA%AC; tt_webid=6724223385113069069; csrftoken=9e9d6c3be6aabc313dce0c4f1a116047; sso_uid_tt=27219b1c2d00b8a6021444d85d83dc38; toutiao_sso_user=7562e682c093b193cce298f25dd396ba; login_flag=8391d980bfc8a8908e7c6c80596a016c; __tea_sdk__ssid=undefined; _ga=GA1.2.931504366.1565662966; sid_guard=7562e682c093b193cce298f25dd396ba%7C1565663040%7C5126263%7CFri%2C+11-Oct-2019+10%3A21%3A43+GMT; uid_tt=27219b1c2d00b8a6021444d85d83dc38; sid_tt=7562e682c093b193cce298f25dd396ba; sessionid=7562e682c093b193cce298f25dd396ba; uuid="w:443dcb551552404fbfde212f1054c781"; __tasessionId=i5j7qcydf1569292028372; s_v_web_id=1e7e3b52d7bc46698bb26079c99fd83d', 'pragma':'no-cache', 'referer':'https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D', 'x-requested-with':'XMLHttpRequest' } 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', } print(urlencode(params)) url='https://www.toutiao.com/api/search/content/?'+urlencode(params) try: response=requests.get(url,headers=headers) if response.status_code==200: print(response.json()) return response.json() except requests.ConnectionError: return 'No response' def get_image(json): if json.get('data'): for item in json.get('data'): if 'title' in item and 'image_list' in item and item['image_list']!=[]: title=item.get('title') images=item.get('image_list') for image in images: print(title) print(image) yield { 'image':image.get('url'), 'title':title } else: print('Not parse') def save_image(item): if not os.path.exists(item.get('title')): os.mkdir(item.get('title')) try: response=requests.get(item.get('image')) if response.status_code==200: file_path='{0}/{1}.{2}'.format(item.get('title'),md5(response.content).hexdigest(),'jpg') if not os.path.exists(file_path): with open(file_path,'wb') as f: f.write(response.content) else: print('Already Downloaded',file_path) except requests.ConnectionError: print('Failed to Save Image') def main(offset): json=get_page(offset) for item in get_image(json): print(item) save_image(item) GROUP_START=1 GROUP_END=1 if __name__=='__main__': pool=Pool() groups=([x*20 for x in range(GROUP_START,GROUP_END+1)]) pool.map(main,groups) pool.close() pool.join()
原文地址:https://www.cnblogs.com/lightmonster/p/11577909.html
- Java 8 Stream 教程 (一)
- Python文档精要研读系列(1):map函数
- SparkML模型选择(超参数调整)与调优
- visual studio 2012 的制作ActiveX、打包和发布
- 用java提交一个Spark应用程序
- 一步步教你利用Github开源项目实现网络爬虫:以抓取证券日报新闻为例
- 用linqPad帮助你快速学习LINQ
- Java 8 Stream 教程 (二)
- CountVectorizer
- Caliburn.Micro学习笔记(五)----协同IResult
- 一个Pythoner的自我修养系列(一)
- 众里寻她千百度,蓦然回首,那bug却在灯火阑珊处
- Github|Python开源项目漫游指南(一)
- Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 保持dropdownlist选中值
- 得到目录大小
- DataGrid 的 全选/取消全选 控制(CheckBox)
- App+游戏的变现模式分析
- 我在新版 Creator 2.4.0 发布头条小游戏遇到的坑!不过我爬出来了!
- 为你的好朋友添点评论
- 重磅!H5游戏接入App已经解决了,民间SDK将会崛起!
- 旋转排序的数组
- 【自动化】利用webhooks自动化构建、编译Vue
- k8s prometheus的语法检查
- docker一键部署SpringBoot项目
- SpringBoot 2.3.0 新特性一览,快来跟我实践一波!
- 【腾讯】在前端开发中,如何获取浏览器的唯一标识
- 如何实现表格单双行条纹样式
- Angular 容易忽略的知识点