urllib库爬取拍信创意图片

解决urllib库遇到Request payload传参问题

分析网页:

找到接口:

发现图片数据都是以json格式存储在这个接口里

我们在来看接口所需要的data,这里的searchQuery参数就是我们搜索的值,所以我们可以改变它,从而爬取更多类型的图片,page就是页码,size就是每页的图片数。

明确目标后,我们就可以开始写代码了
代码如下:

#url就是接口上的url
url='https://api2.paixin.com/medias/1/search?page=0&size=80'
headers={'Content-Type': 'application/json;charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
}
data={"searchQuery": "美女",
"type": "6"
}
#Request payload类型的data是为json字典形式的,所以我们只需要dupms一下就好了
data=json.dumps(data).encode('utf-8')
req=request.Request(url=url,data=data,headers=headers)
html=request.urlopen(req).read()
#我们得到是json字符串,要想变成字典形式需要loads一下
newhtml=json.loads(html.decode())
print(newhtml)

输出的内容就为:

这样我们就已经完成了80%了,接下来就是用for循环去遍历找到所有的图片链接,然后下载下来就好了。
完整代码如下:

from urllib import request
import json
def get_data(a,page,title):for i in range(0,page):url='https://api2.paixin.com/medias/1/search?page={}&size=80'.format(i)headers={'Content-Type': 'application/json;charset=UTF-8','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}data={"searchQuery": title,"type": "6"}data=json.dumps(data).encode('utf-8')req=request.Request(url=url,data=data,headers=headers)html=request.urlopen(req).read()newhtml=json.loads(html.decode())print(newhtml)for key in newhtml['elements']:print(key['image'])baseurl='http:{}'.format(key['image'])request.urlretrieve(baseurl,'E:\\PyCharm Community Edition 2019.1.2\\dasj\\urlib库实践\\拍信创意\\{}.jpg'.format(a))a+=1print('==' * 20, '第{}页已经完毕'.format(i), '==' * 20)
if __name__ == '__main__':a=1title = input('请输入爬取标题:')page=int(input('请输入爬取页数:'))get_data(a,page,title)

新手博主,写的不好希望大家多多担待
看完的小伙伴来个一键三连吧,非常感谢
注:此文章仅供参考学习

urllib库爬取拍信创意图片(post请求)json传参相关推荐

  1. 基于requests库和lxml库爬取优信二手车

    工具:lxml库和requests库 # _*_ coding:utf-8 _*_ import requests import re import time import MySQLdb impor ...

  2. 基于requests和lxml库爬取优信二手车

    工具: requests库和lxml库 具体代码: # _*_ coding:utf-8 _*_ import requests import re import time import MySQLd ...

  3. day02 requests请求库爬取豆瓣电影信息+selenium请求库

    一. requests请求库爬取豆瓣电影信息 - 请求url http://movie.douban.com/top250 - 请求方式 GET - 请求头 user-agent    cookies ...

  4. urllib库爬取网站图片

    千图网:http://www.58pic.com 首先分析网页结构: 第一页:http://www.58pic.com/haibaomoban/0/id-0.html 第二页:http://www.5 ...

  5. python爬动态网页json_爬虫再探实战(四)———爬取动态加载页面——请求json...

    还是上次的那个网站,就是它.现在尝试用另一种办法--直接请求json文件,来获取要抓取的信息. 第一步,检查元素,看图如下: 过滤出JS文件,并找出包含要抓取信息的js文件,之后就是构造request ...

  6. 数据爬取——拍信网美女图片

    仅作练习使用,并无商业用途 import requests import jsonheaders = {"User-Agent": "Mozilla/5.0 (Windo ...

  7. python爬取京东商品图片_python利用urllib实现爬取京东网站商品图片的爬虫实例

    本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码! # -* ...

  8. python 循环定时器 timer显示数据_【Python】多线程、定时循环爬取优信二手车信息...

    爬虫 爬取优信二手车:循环遍历每页,获取相应的有价值字段信息,这里不详细阐释了. 多线程 Python中,使用concurrent.futures模块下的ThreadPoolExecutor类来实现线 ...

  9. python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件

    第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字"python",然后搜索,显示如下搜索结果 从url连接中可以得 ...

最新文章

  1. java中Array和ArrayList区别 可以将 ArrayList想象成一种会自动扩增容量的Array
  2. DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案
  3. javascript删除元素节点
  4. 基于AIO的CS聊天室
  5. Mavan的配置,以及与IDEA版本不一致,解决办法
  6. Linux学习之系统编程篇:IPC 和管道的基本概念及管道的创建
  7. request for KPI tile number display could not be executed for the second time
  8. 风变编程python助教_花30天时间,学完了风变编程Python基础语法课
  9. java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
  10. Windows集群网络配置最佳做法
  11. 中希尔排序例题代码_【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章...
  12. CSDN、sina博客在Zoundry中登记的API URL 收藏
  13. Python 编写自动化工具
  14. 【研发管理】质量管理之约瑟夫·M.朱兰
  15. (转)Oracle数据库资料收藏
  16. 零基础一周学会PIC单片机视频教程
  17. html如何调图片透明度,改变图片的透明度.html
  18. 微信支付接口操作说明
  19. 2022吴恩达机器学习第二周
  20. 宏转录组研究成果荣登10分JHM

热门文章

  1. MySQL_简易图书数据库管理系统_峰峰博客_峰峰吃芒果
  2. JETT(四)-支持JEXL
  3. ArduPilot之遥控器数据读取
  4. ArduPilot飞控AOCODARC-H7DUAL固件编译
  5. 小程序:浅谈小程序更新机制,发版后多久能全覆盖
  6. 最全微信红包分配算法,不只是二倍均值那么简单
  7. 华三模拟器之完成IPv6 to IPv4隧道实验
  8. 迅雷链基于智能硬件的DPoA共识机制介绍
  9. CentOS 7 minimal安装完成之后安装图形界面
  10. Linux常用的设置文件安全上下文命令使用方法