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

admin 7个月前 (04-07) 科技 65 0

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

全文先容:

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

涉及内容:

  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 关键字:

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

https://www.duitang.com/search/?kw=玉人&type=feed
思绪:

import urllib.parse

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

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

瀑布流举例说明:你去一个饭馆,直接启齿要十碗烩面,这个时刻老板最先下面给你吃。然后你发现当你吃完第一碗面,你就吃不下了。这个时刻,剩下的面就算白做了。以是,下次你在去饭馆,照样直接启齿要十碗面,这时,老板聪明晰,下一碗面,你吃一碗,你还需要,就在去下面。这样就不会虚耗。

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

作为 attribute 和 property 的 value 及 Vue.js 的相关处

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")&NBsp;
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

效果:

晋中网:零基础爬取堆糖网图片(一) 第1张
晋中网:零基础爬取堆糖网图片(一) 第2张
晋中网:零基础爬取堆糖网图片(一) 第3张

完整代码:

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

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:
问题可以谈论区提出
晋中网:零基础爬取堆糖网图片(一) 第4张

,

Sunbet

www.0379st.com誉来自于每一位客户的口碑,Sunbet贴心的服务,让你尊享贵宾通道,秒速提现,秒速到账,行业中体验最佳。

Allbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:晋中网:零基础爬取堆糖网图片(一)

网友评论

  • (*)

最新评论

站点信息

  • 文章总数:788
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1323
  • 评论总数:387
  • 浏览总数:46113