Python爬虫-自动下载花瓣网美女一

文章目录 [ 隐藏 ]

爬虫其实很简单,只要用心,很快就就能掌握这门技术,下面通过实现抓取花瓣网美女,来分析一下为什么爬虫事实上是个非常简单的东西。

本文目标

  • 获取花瓣网美女图片
  • 获取翻页数据
  • 下载收藏大于100或者点赞大于10的美女图片到本地

难点

  • 获取网页源码并实现分页
  • 获取图片的详情页地址
  • 下载收藏大于100或者点赞大于10的美女图片到本地

1, 获取网页源码并实现分页

我们可以通过通过Requests框架抓取源码。通过Fillder监控网址请求的地址获取分页。

进入花瓣网美女图片列表页。可以发现url地址为http://huaban.com/favorite/beauty/。向下拉动到底部获取更多图片,发现url地址没有变化。问题就来了?怎么获取分页。这里我们用到网络接口监控工具Fiddler(点击查看Fiddler怎么使用)。打开Fiddler,然后滑动网页列表进行翻页,通过Filder发现url地址为http://huaban.com/favorite/beauty/?iqkxaeyv&limit=20&wfl=1&max=791718782。

可以发现该url地址:http://huaban.com/favorite/beauty/为花瓣网美女图片的地址,后面的是请求参数。max=791718782这个应该是图片的id。我们可以用http://huaban.com/favorite/beauty/?iqkxaeyv&limit=20&wfl=1&max=pin_id拼接的方式实现分页,pin_id为最后一个图片的id,具体怎么获取会在后文讲述。

2, 获取详情页的图片url地址

继续分析源码,右键点击列表页,查看源码。找到带app.page的部分,例如:

根据字面app.page[“boards”]=[…]中间的部分为页面数据,即图片列表

把这一段数据在网址bejson,上进行格式化

然后可以看见,网页数据,就是pins[……]的不断重复。好了我们把这一段代码粘贴出来。翻页url地址”max=791718782″后面的部分为最后一条数据的pin_id

我们在网页上点开一个妹子,然后进入妹子图详情,右键复制图片地址,在新的窗口粘贴出来

http://hbimg.b0.upaiyun.com/09bd364bdac4e6031d721347b5d44485d2c5964031ae6-e4ZZqT_fw658

可以看到我们打开了一个妹子图,这就是我们想要的数据

,url):
print(“开始下载:”,file,url)
try:
r = requests.get(url,stream=True)
with open(file, ‘wb’) as fd:
for chunk in r.iter_content():
fd.write(chunk)
except Exception as e:
print(“下载失败了”,e)

编码实现:

好了几个难点都实现了,整理一下,我们现在开始编码实现吧:

未经允许不得转载:Python在线学习 » Python爬虫-自动下载花瓣网美女一

赞 (1)

来吐槽吧 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址