用python做个街拍美图手册

今天分享一篇在家就能养眼的技能,用python爬取街拍美女高清大图,然后批量插入word中,制作街拍美图手册,闲的时候就能拿出来养养眼。

本文涉及知识主要包括Ajax动态加载网页爬取、requests保存网页图片以及word批量插入图片

第一步:分析图片数据接口

打开今日头条主页,搜索街拍,会出现好多街拍图片

用python做个街拍美图手册


一直往下拉,图片会一直加载,但是网页url未变化,这时我们要打开流量分析工具。以火狐浏览器为例,依次右键-查看元素-网络,然后点击左上角清除按钮

用python做个街拍美图手册


下拉网页:

用python做个街拍美图手册


出现一大堆加载数据,这时我们打开第一个的json文件的响应窗口:

用python做个街拍美图手册


发现这返回的就是街拍图片信息,每次返回20条,再看看它的请求参数:

用python做个街拍美图手册


经过试验发现,timestamp和_signature是变化参数,但是可以舍弃,最后以offset的变化来改变换页(0代表第1页,20代表第2页,依次类推...)

第二步:python下载图片

准备下载20页的数据


1.首先构造url

<code>

for

i

in

range(

20

):     url =

'https

:          

'offset

={

0

}&format=json&keyword=%E8%A1%

97

%E6%

8

B%

8

D&autoload=

true

&count=

20

&en_'\          

'qc

=

1

&cur_tab=

1

&from=search_tab&pd=synthesis'.format(i*

20

)/<code>


2.模拟请求数据,并将返回数据转换成json格式

<code>

response

=requests.get(url, headers=header, cookies=cookie)

Imgs

= json.loads(response.text)[

'data'

]/<code>

一定要带上登录后的cookie数据,否则无法返回图片信息


3.从返回数据中取出标题和图片url

<code>

for

i

in

Imgs:    

if

'title'

in

list

(

i.keys(

)):         title

= i[

'title'

]         Imgurl = i[

'other_image_url'

]/<code>


4.requests下载图片,并以标题命名

<code>imgeresp =requests.

get

(Imgurl)with

open

(

'img\{0}.jpg'

.format(title),

'wb'

)

as

f:     f.write(imgeresp.content)/<code>

5.图片效果展示

用python做个街拍美图手册

用python做个街拍美图手册


看看就很养眼,想要高清大图的请私聊我

第三步:word批量插入图片

安装docx和PIL模块,直接pip安装即可

1.导入相关模块

<code>

import

osfrom PIL importImagefrom docx importDocumentfrom docx.shared

import

Inches/<code>

2.遍历该文件夹下所有图片名

<code>file = 

'图片路径'

myDocument =Document()

for

root, dirs, filesin

os

.walk(file):    

for

f

in

files:​         ImgFile =

os

.

path

.join(root, f)/<code>

3.获取每张图片像素大小

<code>

img

=Image.open(ImgFile)

pixel

= list(img.size)/<code>

主要是因为街拍图片像素差别较大,想按原像素大小导入word中,img.size为元组类型数据,这里用list将其转化为列表

4.将图片按原像素添加至word中

<code>

myDocument

.add_picture

(ImgFile, width=Inches(pixel[

0

]/

72

), height=Inches(pixel[

1

]/

72

))/<code>


5.最终效果

用python做个街拍美图手册


本文代码已上传至【python的爬虫与数据分析之路】,请在后台回复街拍获取。



分享到:


相關文章: