欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-27 17:04:00
python3半自动爬虫获取风暴英雄官方壁纸引(废)言(话)动机与目标我为什么会写这篇blog我写这篇blog有什么用干货开始之前导入模块定义路径和UA读取本地html文件解析并提取图片地址获取地址所指向的图片参考资料引(废)言(话)随便打开一个搜索引擎然后输入“Python”、“爬虫”、“图片”这样的关键词组合,返回结果里必然会出现“X女X图”或者“妹X图X”这样的字眼……不得不感叹,色批是第一生产力。当然也不排除某些营销号动了脑筋以后,想出这样的标题吸引流量,真是辛苦他们了呢;不过从结果上看你们...

引(废)言(话)

随便打开一个搜索引擎然后输入“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

相关标签: python