ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬取游民福利,搞了一堆美女图片,代码奉上,多张福利

2021-07-17 19:02:21  阅读:194  来源: 互联网

标签:content 福利 img get url 爬取 soup 游民 sigleArticle


点赞再看,养成习惯

目录

展示成果:

分析网站

总结下:

技术分析

注:图片下载可运行

遇到的困难

未解决的问题:


因为想要爬取一些福利图片,花了差不多1个半小时的时间写了这个图片的爬虫,虽然还是有些问题,但是能爬下来图片就够了,下面开始聊一下,

展示成果:

图片

注:这只是一页的数据,网站总共有262 页哦

分析网站

目标网站:

游民星空的游民福利,基本上是一些美女图片,LSP喜欢,废话不多说,开始吧

Url 如下:https://www.gamersky.com/ent/xz/

打开网址,选择自己想要查看的,右键 -> 检查,就可以直接查看到对应的html 代码。

href 就是对应的链接

分析下url找个每个详情页的地址

图片

进入到详情页查看每个图片的url

图片

最终找到图片的详细地址

图片

总结下:

  • 对首页进行分析,找到详情页的url

  • 对详情页进行分析,找到图片的url

  • 打开url,找到图片

  • 每个详情页的的第一页就是url ,第二页就是url_2.shtml

技术分析

之前没写过爬虫,所以技术上没有什么经验,但是爬虫领域python是最火的,所以果断放弃Java,选择python,有段时间没写python了,有点生疏了,管他呐,不会就查,开干!!!

选择的IDE 是pycharm ,因为习惯了idea

python 是选择了3.9的版本,随便下的

使用的库是BeautifulSoup 和 requests

直接上代码:

import time

import requests
from bs4 import BeautifulSoup

def get_content(url):
   try:
       user_agent = 'Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'
       response = requests.get(url, headers={'User-Agent': user_agent})
       response.raise_for_status()  # 如果返回的状态码不是200, 则抛出异常;
       response.encoding = response.apparent_encoding  # 判断网页的编码格式, 便于respons.text知道如何解码;
   except Exception as e:
       print("爬取错误")
   else:

       print(response.url)
       print("爬取成功!")
       return response.content

def save_img(img_src):
   if img_src is None:
       return
   try:
       print(img_src)
       urlArr = img_src.split('?')
       if len(urlArr) == 2:
           url = urlArr[1]
       else:
           url = urlArr[0]
       headers = {"User-Agent": 'Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'}
       # 注意 verify 参数设置为 False ,不验证网站证书
       requests.packages.urllib3.disable_warnings()
       res = requests.get(url=url, headers=headers, verify=False)
       data = res.content
       filePath = "D:\\pic\\"+ str(int(time.time())) +".jpg"
       with open(filePath, "wb+") as f:
           f.write(data)
   except Exception as e:
       print(e)
def downloadImg(sigleArticle):
   if sigleArticle is None:
       return
   # 实例化soup对象, 便于处理;
   soup = BeautifulSoup(sigleArticle, 'html.parser')

   imgList = soup.find_all('p',class_ ="GsImageLabel")
   for img in  imgList:
       atag = img.find('a')
       if atag:
           save_img(atag['href'])

def getAllArticle(content):
   # 实例化soup对象, 便于处理;
   soup = BeautifulSoup(content, 'html.parser')
   divObj = soup.find_all('div', class_="tit")
   for item in divObj:
       link = item.find('a')
       if link:
           articleUrl = link['href']
           sigleArticle = get_content(articleUrl)
           downloadImg(sigleArticle)
           arr = articleUrl.split(".shtml")
           for i in range(2,10):
               url = arr[0]+"_" +str(i)+ ".shtml"
               sigleArticle = get_content(url)
               downloadImg(sigleArticle)

if __name__ == '__main__':
   for i in range(2, 5):
       print(i)
       url = "https://www.gamersky.com/ent/xz/"
       articleUrl = "https://www.gamersky.com/ent/202107/1406688.shtml"
       content = get_content(url)
       getAllArticle(content)

       # singleArticle = get_content(articleUrl)
       #
       # downloadImg(singleArticle)

注:图片下载可运行

遇到的困难

1.bs4 的安装

在pycharm 中无法安装,不知道什么情况,即使换了阿里的和清华的源依然不行,最后是在控制台安装

2.字符串的拆分

字符串的拆分的函数提示不好,不如Java方便

网站的字符串存在一些不规律,也没有深度探索

未解决的问题:

1.首页的翻页问题,现在只解决了首页的下载,还需要研究

2.程序的一些警告没有处理,直接无视了 requests.packages.urllib3.disable_warnings()

3.图片网址的前半部分是否需要拆分的问题,在浏览器中可以查看,但是爬取的时候似乎有点问题,没有深究

注意:爬虫虽好,可不要多用,会浪费网站的服务器性能

常规福利

图片

图片

图片

图片

图片

赶紧点赞,分享

标签:content,福利,img,get,url,爬取,soup,游民,sigleArticle
来源: https://blog.csdn.net/perfect2011/article/details/118861026

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有