吟一曲苍穹 发表于 2020-1-10 00:32

python爬虫——抓取煎蛋网ooxx妹子图的一个小工具

本帖最后由 吟一曲苍穹 于 2020-1-10 00:33 编辑

一点学习成果,仅限学习交流!


一、源码:
import urllib.request
import os
import random
import time


def get_page(html):
    # 获取下一页链接
    start1 = str(html).find("Older Comments")
    stop1 = str(html).find("class", start1)

    url = "http:" + html
    return url


def get_img(html):
    # 获取所有图片地址 (原图)
    imgs = []
    img_sta = 0
    img_end = 0
    while 1:
      img_end = str(html).find("view_img_link", img_end + 10)
      if img_end == -1:
            break
      img_sta = str(html).find("righttext", img_sta + 10)

      url = "http:" + html
      imgs.append(url)
    return imgs


def save_img(urls, img_dir):
    if os.path.isdir(img_dir):
      del_dir(img_dir)
    os.mkdir(img_dir)
    os.chdir(img_dir)
    a = 1
    for i in urls:
      print("*" * 60)
      print("打开链接:", i)

      wjm_sta = i.find("large")
      wjm = i# 获取文件名

      img = open_url(i)
      with open(wjm, "wb") as f:
            f.write(img)
      print("保存成功:", a)
      a += 1
      print("关闭链接,挂起程序2s")
      time.sleep(1)

    os.chdir("../")# 保存完毕切回xxoo目录


def open_url(url):
    agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
    req = urllib.request.Request(url)
    req.add_header("User-agent", agent)
    # 代{过}{滤}理ip
    # ipports = ["183.146.213.157:80", "14.155.112.17:9000", "60.211.218.78:53281"]
    # ipport = random.choice(ipports)
    # print("使用的代{过}{滤}理ip:", ipport)
    # proxy_support = urllib.request.ProxyHandler({"http": ipport})
    # opener = urllib.request.build_opener(proxy_support)
    # urllib.request.install_opener(opener)
    try:
      response = urllib.request.urlopen(req)
      html = response.read()
      response.close()
      return html
    except:
      print("出错")
      return open_url(url)


def del_dir(ddir):
    os.chdir(ddir)
    lists = os.listdir()
    for i in lists:
      if os.path.isfile(i):
            os.remove(i)
      else:
            del_dir(i)
    os.chdir("../")
    os.removedirs(ddir)


def xxoo(page_num=1):
    if os.path.isdir("xxoo"):
      del_dir("xxoo")
    os.mkdir("xxoo")
    os.chdir("xxoo")
    page_url = "http://jandan.net/ooxx"
    img_dir = 1
    while page_num:
      html = open_url(page_url).decode("utf-8")
      print("打开网页。。。")

      imgs_url = get_img(html)
      print("所有图片地址获取成功!", imgs_url)

      print("保存当前页的图片。。。。")
      save_img(imgs_url, str(img_dir))
      print("保存完毕!。。。")

      page_num -= 1

      if page_num:
            print("获取下一页的链接")
            page_url = get_page(html)
            print("下一页的地址:", page_url)
            img_dir += 1


if __name__ == "__main__":
    page_num = input("请输入要爬取的页数(默认1页!):")
    if page_num == "" or page_num.isspace():
      page_num = 1
    else:
      page_num = int(page_num)
    xxoo(page_num)


二、效果



咳咳,,只是学习,爬什么不重要





这些百度的免费代{过}{滤}理ip非常容易出错,
不知道各位坛友们有没有好的免费优质代{过}{滤}理IP呀{:301_997:}

kuoniya 发表于 2020-1-10 00:49

kekekeke

maple185 发表于 2020-1-10 01:24

感谢分享

我当时双手级离开了键盘


{:301_997:}

hbwwt 发表于 2020-1-10 00:44

冲着标题来的{:1_905:}

沉默挺好的 发表于 2020-1-10 00:56

感谢分享

一念天堂地狱 发表于 2020-1-10 01:08

鼓掌一下好吧

bbxfxd 发表于 2020-1-10 01:41

现在开始学习,多久可以达到你这样的水平?

吟一曲苍穹 发表于 2020-1-10 01:46

bbxfxd 发表于 2020-1-10 01:41
现在开始学习,多久可以达到你这样的水平?

{:301_1004:}我是菜鸟,,你现在开始学的话十来天就行了,python挺简单的

diaoff 发表于 2020-1-10 02:14

最佳蛋友 ,来个C{:1_921:}

成国大吉大利 发表于 2020-1-10 04:41

这个软件有点意思啊
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: python爬虫——抓取煎蛋网ooxx妹子图的一个小工具