请选择 进入手机版 | 继续访问电脑版

石家庄老站长

点击联系客服
客服QQ: 客服微信:
 找回密码
 立即注册
查看: 1|回复: 0

乘着游民福利 一堆美女照片 代码封赏 多张福利

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-7-21 14:25:42 | 显示全部楼层 |阅读模式
点赞再看,养成习惯

目录

显示结果:

网站分析

综上所述:

技术分析

注意:照片下载是可行的

遇到的困难

未解决的问题:

我想登几张福利照片,所以用这幅画的爬虫花了近1个半小时,虽然还是有点问题,但是能把照片下来就够了。下面开始讲故事。(大卫亚设,福利)。

展示成果:





注:这只是一页数据,网站共262页

分析网站

目标网站:

游民明星的遗民福利基本上是美女照片。LSP我喜欢。废话不要多说,开始吧

网址为https://www.gamersky.com/ent/xz/

您可以打开网址,选择所需的内容,然后右键单击,直接查看相应的html代码。

Href是其链接

请分析Url,找到每个详细页面的地址。








要查看每个图片的URL,请转到详细页面。








最后,找到图片的详细地址。






3%E4%B8%8B%EF%BC%9A">总结下:
  • 对首页进行分析,找到详情页的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.图片网址的前半部分是否需要拆分的问题,在浏览器中可以查看,但是爬取的时候似乎有点问题,没有深究


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

    常规福利












    赶紧点赞,分享
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|无图版|手机版|小黑屋|石家庄@IT精英团

    GMT+8, 2021-8-5 12:00 , Processed in 0.187201 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2021 Comsenz Inc.

    快速回复 返回顶部 返回列表