从0实现python批量爬取插画壁纸

一、本文编写缘由

       很久没有写过爬虫,已经忘得差不多了。以爬取pixiv原创插画网站为着手点,进行爬虫复习与实践。

二、获取网页源码

      爬取网页数据的过程主要用到request库,一个简单的网页爬虫实现过程大致可以分为一下步骤:

  • 指定爬取url
  • 发起爬取请求
  • 存储爬取数据

      下面以爬取pixiv网站为例,获取pixiv网站首页源码并存储到pixiv1.html文件中。

import requests


if __name__ == "__main__":

    # step 1: 爬取网页数据

    # 指定url
    url = 'https://www.pixiv.net/'
    # 发起请求
    home_text = requests.get(url).text

    # step 2: 解析爬取数据

    # step 3: 存储爬取数据
    save_path = './pixiv1.html'
    with open(save_path, 'w', encoding='utf-8') as fp:
        fp.write(home_text)
        print('下载成功!')

       经过上述操作,将会在当前目录下生成一个“pixiv1.html”文件。双击文件打开,会发现是下图这样子,访问该网站首先需要登录,所以会跳入到登录注册页面,且页面都为日文。

       针对这个问题,右键检查网页,进入network,然后刷新页面,发现有数据更新,点击查看Headers。发现request headers里面带有cookie,因此需要伪装UA,设置请求头header,将request header复制到代码块中。

# 指定url
url = 'https://www.pixiv.net/'
headers = {
    'user-agent': '你的user-agent',
    'referer':'https://www.pixiv.net/',
    'sec-fetch-dest':'document',
    'sec-fetch-mode':'navigate',
    'sec-fetch-site':'same-origin',
    'sec-fetch-user':'1',
    'upgrade-insecure-requests':'1',
    'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-encoding':'gzip, deflate, br',
    'accept-language':'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
    'cache-control':'max-age=0',
    'cookie': '你的浏览器cookie'
}
# 发起请求
home_text = requests.get(url, headers=headers).text

       再次打开保存的网页文件“pixiv2.html”,发现页面并不像我们登录进去的一样,而是如下图所示。

       小朋友,你是不是有很多问号......

三、爬取单张缩略图片

       由上一个章节可知,首页的插画部分并不是首页的直接源码,而是引入了另外的网页地址和脚本。这里,通过进入到网页并进行分析,右键图片再点击检查获取图片地址,该图片比较小,为缩略图片。复制图片地址,并粘贴到浏览器的地址栏,可显示图片。

  • 30
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值