好久没有写爬虫了,之前只是止步于爬取静态网页,于是准备找个简单的动态网页进行爬取,在学长的建议下,进军花瓣网。
首先在爬取图片之前肯定要对网页源码进行分析
这里可以使用chrome的F12开发人员工具,很简单就找到了图片的url,这不就直接可以开始爬取了么2333
但是事实并不是这样,我使用requests.get获取网页源码后,发现和我看到的网页源码跟不就不是一个东西
之后根据网上资料查询,发现获取的其实是json格式的一大串数据。这时候开启开发人员工具,然后选择network,选择XHR,你开始往下拖动,会发现每次网页加载就会出现新的XHR文件
上面画红线的都是有图片内容的一次加载图片的XHR文件,点击第一个,再选择preview,打开pins
这里面就是一次加载的20张照片的json格式信息,点开第0个,观察里面信息
其实这里需要的只是每一张图片的pin_id和key
pin_id是用来让脚本持续获得新的图片,读者可自行观察下每次刷新出的包含20张图片的那个XHR文件网站是由
http://huaban.com/explore/miantiao/(最基础网站) + ?jb67d549(这个不清楚,但是不影响,因为并没有值)&max=891511322(每20组图片第一张pin_id)&limit=20&wfl=1(后面这两个是固定的)
这里可以知道,第一组照片最后一个pin_id就是下一组网站url组成中的max
key是用来下载图片时使用,可以在网页源码中找到,图片的url格式是
http://img.hb.aicdn.com/ + d094c0bbdfa62c4d45dac35f4f8c99d9eaa3649cd2da-AAz022_(这就是key,当然这个不是第一张图片的key)+ fw236
可以直接使用urllib.request.urlretrieve直接下载图片
附上源码
这个爬虫针对于花瓣网很多网页都可以直接进行图片下载,只需要更换下最前面的url
文章里可能有些地方说的不够专业,我是以我自己对这些的理解写下的,如果有问题谢谢大家提醒我。
最后附上美食: