图片爬虫

图片爬虫参考视频学习,堆糖网图片爬虫"""1.URL2.模拟浏览器请求资源3.解析网页4.保存数据到本地"""importrequests#第三方库importurllib.parseimportjsonimportjsonpathurl=’https://www.duitang.com/napi/blog/list/by_search/?kw={}&s…

大家好,又见面了,我是你们的朋友全栈君。

参考视频学习,堆糖网图片爬虫

"""
1.URL
2.模拟浏览器请求资源
3.解析网页
4.保存数据到本地
"""
import requests   #第三方库
import urllib.parse
import json
import jsonpath

url ='https://www.duitang.com/napi/blog/list/by_search/?kw={}&start={}'
label = '校花'
label = urllib.parse.quote(label)
#print(label)
num = 0

for index in range(0, 2400, 24):
    u = url.format(label, index)
    we_data = requests.get(u).text
#    print(we_data)
    html = json.loads(we_data)
    photo = jsonpath.jsonpath(html, "$..path")
    print(photo)
    for i in photo:
        a = requests.get(i)
        with open(r'G:\Python\test\图片爬虫\photo\{}.jpg'.format(num), 'wb') as f:
            f.write(a.content)
        num += 1


 

 以下为自己结合小说爬虫和图片爬虫,对一个图片网站进行的爬取。图片不雅,故网址做了屏蔽,仅供代码学习

import requests
from pyquery import PyQuery

photo = []
num = 3538

def onepage(one_url, oneflag):
    response = requests.get(url=one_url)
    if response.status_code != 200:
        return False
    #print(response.text)
    doc = PyQuery(response.text)
    title = doc('title').text()
    print(title)
    desc = doc('head > meta:nth-child(6)').attr('content')
    print(desc)

    imglist = doc('#main > article > div > p a')
    #print(imglist)
    for dd in imglist.items():
        photo.append(dd.attr('href'))
#        print(dd.attr('href'))

    if oneflag == True:
        with open(r'G:\Python\test\图片爬虫\photo3\说明.txt', encoding='utf-8', mode='a+') as f1:
            f1.write(title+'\n')
        page = doc('#main > article > div > div.page-links a')
        for i in page.items():
            with open(r'G:\Python\test\图片爬虫\photo3\说明.txt', encoding='utf-8', mode='a+') as f1:
                f1.write(i.attr('href')+'\n')
            print(i.attr('href'))
            onepage(i.attr('href'), False)
        with open(r'G:\Python\test\图片爬虫\photo3\说明.txt', encoding='utf-8', mode='a+') as f1:
            f1.write('\n\n\n')


for j in range(143, 1000):
    url = 'https://******.com/blog/archives/'+str(j)
    photo = []
    if onepage(url, True)==False:
        continue
    print(j)
    print(photo)
    for i in photo:
        a = requests.get(i)
        with open(r'G:\Python\test\图片爬虫\photo3\{}-{}.jpg'.format(j, num), 'wb') as f2:
            f2.write(a.content)
        num += 1

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149759.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python小项目:1、人机剪刀石头布

    python小项目:1、人机剪刀石头布

    2021年10月5日
    38
  • maven项目使用mybatis插件Free Mybatis plugin「建议收藏」

    maven项目使用mybatis插件Free Mybatis plugin「建议收藏」首先安装插件如图所示选择第一个插件安装,安装完毕重启IDEA 然后我们选择我们已经配置好的数据库如下图在需要生成配置文件的数据库上右键,就会出现mybatis-generator选项打开这个就打开如上图所示配置窗口,这里我们使用默认的就行,如果不想使用lombok去掉这个勾选即可,然后我们选择ok即可就会生成以上文件,一个数据库的映射类,一个操作数据库的映射接口,和具体操作数据库的xml,主配置文件就在Configure里面这个自己生成…

    2022年9月28日
    2
  • BeanUtils中copyProperties的使用[通俗易懂]

    BeanUtils中copyProperties的使用[通俗易懂]BeanUtils中copyProperties的作用是将一个对象中的属性值赋值(拷贝)给另一个对象中对应的属性。其中赋值成功的属性对应的属性名和属性类型必须相同,否则对应的属性值不会从一个对象赋值给另一个对象,但是此时不影响其他属性值的拷贝。1、实体类publicclassModel01{privateStringname;privateintage;

    2022年10月3日
    3
  • hdu 4455 Substrings (DP 预处理思路)「建议收藏」

    hdu 4455 Substrings (DP 预处理思路)

    2022年1月23日
    42
  • WORD域代码详解[通俗易懂]

    WORD域代码详解[通俗易懂]来自:百度文库WORD域代码详解我们在word中编辑文档时,有时会经常遇到要求输入数学公式的情况。虽然简单的加、减、乘、除等运算都可在键盘上直接输入,但遇到复杂的数学公式:如积分、开方、求和等符号时,就只能利微软的office套件中所带的工具”公式编辑器”来完成,但是在office套件的典型安装的过程中,并没有选择这个工具,那么有没有办法可以在word中直接输入这些符号呢?答案是肯定的,下

    2022年6月14日
    38
  • Intellij IDEA神器居然还有这些小技巧

    概述 真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对 的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的 技巧分享给大家。本文是这个系列的第一篇,主要介绍一些你可能

    2022年3月13日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号