python3半自动爬虫,获取风暴英雄官方壁纸

2022-07-31,,,,

python3半自动爬虫获取风暴英雄官方壁纸

  • 引(废)言(话)
  • 动机与目标
    • 我为什么会写这篇blog
    • 我写这篇blog有什么用
  • 干货
    • 开始之前
    • 导入模块
    • 定义路径和UA
    • 读取本地html文件
    • 解析并提取图片地址
    • 获取地址所指向的图片
    • 参考资料

引(废)言(话)

随便打开一个搜索引擎然后输入“Python”、“爬虫”、“图片”这样的关键词组合,返回结果里必然会出现“X女X图”或者“妹X图X”这样的字眼……
不得不感叹,色批是第一生产力。
当然也不排除某些营销号动了脑筋以后,想出这样的标题吸引流量,真是辛苦他们了呢;不过从结果上看你们还是贩卖焦虑更有效些。

动机与目标

自己动手,丰衣足食。

——辣个蓝棱

我为什么会写这篇blog

女人哪有游戏好玩?.jpg
风暴要火.png
你们难道没有手机吗.gif

我写这篇blog有什么用

  • 记录细节,以备后用
  • 日记
  • 可以直接抄走

干货

开始之前

这一次的目标是网站里的一个栏目,而且这一区域采用了动态加载的机制,你必须亲手点击那个“查看更多”按钮(若干次),才能最终得到所有图片的索引预览。
因此我手动拷贝了有关部分的HTML内容,至本地文件heroes.html;这是我称这个爬虫为“半自动”的原因(本菜鸟认为:一定存在自动化的方法来免除动手操作的麻烦,只是我水平太低,无从寻找和使用。欢迎留言或者以别的方式让我知道,如果确实有用,我会以实际行动向你表达我的感谢)。

导入模块

import time
import random

from bs4 import BeautifulSoup
import urllib.request as ureq
from tqdm import tqdm

定义路径和UA

不管网站是否采取什么严格的反爬措施,这个UA头字串还是加了为好。

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}
st="file:///X:/heroes.html"
pic_path = 'pic/'

读取本地html文件

r = ureq.urlopen(st)
hfr = r.read()

解析并提取图片地址

soup = BeautifulSoup(hfr, 'html.parser')
imglist = []
all_index = soup.find_all('ul',{'class':"m-media-download-box clearFix"})
for i in all_index:
    for imglink in i.find_all('a'):
        imglist.append(imglink.get('href'))
    pass

获取地址所指向的图片

# print(len(imglist))
test_dl = imglist[:2]
for el in tqdm(test_dl, ascii=True):
    ureq.urlretrieve(el,pic_path+el.split('/')[-1])
    time.sleep(random.random()*2)
    pass

参考资料

bs4官方中文说明https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

本文地址:https://blog.csdn.net/yongpassby/article/details/107862833

《python3半自动爬虫,获取风暴英雄官方壁纸.doc》

下载本文的Word格式文档,以方便收藏与打印。