零基础爬取堆糖网图片(一)

全文介绍:

首先堆糖网是一个美图壁纸兴趣社区,有大量的美女图片
今天我们实现搜索关键字爬取堆糖网上相关的美图。
当然我们还可以实现多线程爬虫,加快爬虫爬取速度

01.png

涉及内容:

  1. 爬虫基本流程
  2. requests库基本使用
  3. urllib.parse模块
  4. json包
  5. jsonpath库

图例说明:

  1. 请求与响应
sequenceDiagram
浏览器->>服务器: 请求
服务器-->>浏览器: 响应
  1. 爬虫基本流程
graph TD
A[目标网站] -->|分析网站| B(url)
B --> C[模拟浏览器请求资源]
C -->D[解析网页]
D-->E[保存数据]

正文:

1. 分析网站

1.1 目标网址:https://www.duitang.com/
1.2 关键字:
02.png

值得注意的是url当中是不能有汉字的,所以真正的url是这样的:

https://www.duitang.com/search/?kw=%E7%BE%8E%E5%A5%B3&type=feed
思路:

import urllib.parse

label = '美女'
label = urllib.parse.quote(label)
# 输出:%E7%BE%8E%E5%A5%B3
1.3 数据源:

首先,这个网站的数据是瀑布流式的加载方式。

瀑布流举例说明:你去一个饭店,直接开口要十碗烩面,这个时候老板开始下面给你吃😏。然后你发现当你吃完第一碗面,你就吃不下了。这个时候,剩下的面就算白做了。所以,下次你在去饭店,还是直接开口要十碗面,这时,老板聪明了,下一碗面,你吃一碗,你还需要,就在去下面。这样就不会浪费。

针对这种数据加载,需要抓包

03.png

2. 导库

import urllib.parse
import json
import requests
import jsonpath

3. 模拟浏览器请求资源

we_data = requests.get(url).text

4. 解析网页

因为是json文件,所以直接用jsonpath工具提取数据

# 类型转换
html = json.loads(we_data)
photo = jsonpath.jsonpath(html,"$..path") 
print(photo)

得到图片的链接

5. 保存数据

num = 0
for i in photo:    
    a = requests.get(i)   
    with open(r'tupian\{}.jpg'.format(num),'wb') as f: 
        #  content 二进制流
        f.write(a.content)
        num += 1

效果:

04.png
05.jpg
06.jpg

完整代码:

所以,以此为动力,又实现了翻页,下面是简单的全部代码(代码为了零基础小白看懂,大神勿喷)

import urllib.parse
import json
import requests
import jsonpath
url = 
'https://www.duitang.com/napi/blog/list/by_search/?kw={}&start={}'
label = '美女'
# 关键字
label = urllib.parse.quote(label)
num = 0
# 翻页  24的间隔
for index in range(0,2400,24):    
    u = url.format(label,index)    
    we_data = requests.get(u).text    
    html = json.loads(we_data)    
    photo = jsonpath.jsonpath(html,"$..path")
    # 遍历每页的图片链接
    for i in photo:        
        a = requests.get(i)
        # wb 二进制写入
        with open(r'tupian\{}.jpg'.format(num),'wb') as f: 
            # content 二进制流
            f.write(a.content)        
    num +=1

PS:
问题可以评论区提出

07.png

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容