欢迎光临散文网 会员登陆 & 注册

python爬虫练习(一):爬取27270游戏场景原画图片

2023-07-03 15:56 作者:阿黄大将军  | 我要投稿

学习一下随便写着玩的

import requests
from lxml import etree
from fake_useragent import UserAgent
import os

#爬取27270游戏场景原画图片
#思路:每获取一次图片链接,进行一次图片的下载保存

class Picture27270():
   def __init__(self):
       self.url='https://www.27270.net/game/youxijietu/list_18_{}.html'
       self.headers={'user-agent':UserAgent().random}

   #获取每一页中的游戏原画图片页的url
   def parse_href1(self,url):
       html=requests.get(url=url,headers=self.headers).text
       tree=etree.HTML(html)
       url_list=tree.xpath('/html/body/div[2]/div[1]/div[5]/ul/li/a/@href')
       for i in url_list:
           #print(i)
           self.parse_href2(i)

   #获取图片页中各图片的url发给下载函数
   def parse_href2(self,url):
       html = requests.get(url=url, headers=self.headers).text
       tree = etree.HTML(html)
       # 向保存函数发第一页的url
       self.save_html(str(url))
       #分析规则发现解析总页数拼接各页图片url
       num = tree.xpath('//*[@id="pageinfo"]/@pageinfo')
       if bool(num):
           for i in list(num):
               # 向保存函数发其余页的url
               for a in range(int(i)-1):
                   b=a+2
                   c=url[:-5]
                   url_num=c+"_"+str(b)+".html"
                   self.save_html(str(url_num))
                   #print("多图"+url_num,type(url_num))

   def save_html(self,url):
       html=requests.get(url=url,headers=self.headers).text
       tree=etree.HTML(html)
       #设置爬取到的数据编码格式及解码格式,全角的斜杠替换进行路径名称斜杠替换
       name=tree.xpath('/html/body/div[2]/div[2]/h1/text()')[0].encode("iso-8859-1").decode("gbk").replace('/','/') .replace('\\','\')
       img_href=tree.xpath('//*[@id="picBody"]//img/@src')[0]
       img=requests.get(url=img_href,headers=self.headers).content
       with open('F:/download/picture/youxi/'+str(name)+'.jpg','wb') as f:
           f.write(img)
           print(name+'-下载成功')
   


   def run(self):
       num=input('请输入要爬取的总页数:')
       for i in range(1,int(num)+1):
           url=self.url.format(i)
           self.parse_href1(url)

if __name__=='__main__':
   spider=Picture27270()
   spider.run()

python爬虫练习(一):爬取27270游戏场景原画图片的评论 (共 条)

分享到微博请遵守国家法律