小葫蘆 发表于 2018-4-4 10:07

【Python】新学习了python,放出第一个福利图爬虫

本帖最后由 wushaominkk 于 2018-4-26 11:47 编辑

学习了一段时间python,终于写了第一个爬虫,用的是python3.6的requests和BeautifulSoup。爬福利图特别有动力啊,这个爬虫只爬取了一个妹子的20多个图集,每个图集分成了文件夹,想要爬其他妹纸的图集请把地址换成其他妹纸的,只限于-亿图全景图库 http://www.yeitu.com/ ,另有可以完善或修改的地方请大神指出,谢谢!






import requests
from bs4 import BeautifulSoup
import os

'''http://www.yeitu.com/ # 亿图全景图库'''

url = "http://www.yeitu.com/tag/zuoji_toxic/"
if not os.path.isdir("Toxic"):# 如没有Toxic文件夹则新建一个
    os.mkdir("Toxic")


def response(url):
    html = str(requests.get(url, timeout=3).content, "utf-8")
    soup = BeautifulSoup(html, "lxml")
    return soup


def download(url, f_path):
    soup = response(url)
    res_list = soup.select(".img_box img")
    for res in res_list:
      # print(res.get("src"))
      try:
            pic = requests.get(res.get("src"))
      except requests.ConnectionError:
            print("【错误】图片无法下载!!!")
      file_name = (res.get("src")).split("/")[-1].replace("?imageslim", "")
      file_path = f_path + "\\" + file_name
      if os.path.isdir(file_path):
            print("【错误】-文件已存在...")
            break
      else:
            with open(file_path, "wb") as fp:
                fp.write(pic.content)
            print("进程", os.getpid(), "【下载完成】-", file_name)


# 读取下一页的链接
def next_pages(url, file_path):
    soup = response(url)
    last_page = soup.select("#pages a").get("href")
    lp = str(last_page).split("_")[-1]# 读取最后一页
    # return lp
    for i in range(1, int(lp) + 1):
      if i == 1:
            page = url
      else:
            page = url.split(".html") + "_" + str(i) + ".html"
      download(page, file_path)


# 读取图集目录
def res_html(url):
    if not url == None:
      soup = response(url)
      for res in soup.select(".title a"):
            file_path = "Toxic" + "\\" + res.text
            if not os.path.isdir(file_path):
                os.mkdir(file_path)
            print(res.get("href"), file_path)
            next_pages(res.get("href"), file_path)


if __name__ == "__main__":
    res_html(url)
    print("【全部图片完成下...】")

小葫蘆 发表于 2018-4-4 12:12

十二星 发表于 2018-4-4 11:33
楼主 可否告诉我你在哪学的python3 我在网上找的都是python2十分感谢啊

链接: https://pan.baidu.com/s/1dFGre3qBMrASPJtA5obgNw 密码: ldlp

stop1204 发表于 2018-4-4 10:24

还要再看两天 才能学到

吾爱我的爱 发表于 2018-4-4 10:34

感谢分享,先保存下来,学习一下

51cbb 发表于 2018-4-4 10:35

谢谢分享哈!

qinyu1242 发表于 2018-4-4 10:38


感谢分享,先保存下来,学习一下

music984 发表于 2018-4-4 10:52

收藏学习!

wushaominkk 发表于 2018-4-4 10:54

请编辑代码插入格式,最好能有截图
[公告]发帖代码插入教程
https://www.52pojie.cn/thread-713042-1-1.html

YXK 发表于 2018-4-4 11:10

最近也在学PYTHON 受教了.

kof21411 发表于 2018-4-4 11:12

下一步就是改进为多线程下载,少年慢慢来

wan_lei2008 发表于 2018-4-4 11:30

继续加油。
页: [1] 2 3 4 5
查看完整版本: 【Python】新学习了python,放出第一个福利图爬虫