设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 153|回复: 8

Py

[复制链接]

308

主题

629

回帖

2294

积分

金牌会员

积分
2294
发表于 2017-5-17 11:20:49 | 显示全部楼层 |阅读模式
[ol]
  • import requests
  • from bs4 import BeautifulSoup
  • import os
  • import time
  • class Spider:
  •     def __init__(self, base_url):
  •         self.base_url = base_url
  •     def run(self):
  •         for i in range(1, 10000):
  •             url = '{}/{}'.format(base_url, i)
  •             html = self.request(url)
  •             if html:
  •                 self.parse_html(html, url)
  •                 time.sleep(1)
  •             else:
  •                 time.sleep(0.5)
  •     def parse_html(self, html, href):
  •         title = BeautifulSoup(html.text, 'lxml').find('h2', class_='main-title').text
  •         print('开始保存:{}'.format(title))
  •         path = str(title)
  •         self.mkdir(path)
  •         max_span = BeautifulSoup(html.text, 'lxml').find('div', class_='pagenavi').find_all('span')[-2].text
  •         for page in range(1, int(max_span) + 1):
  •             if page == 1:
  •                 page_url = href
  •             else:
  •                 page_url = '{}/{}'.format(href, str(page))
  •             self.parse_img(page_url, img_name=page)
  •     def parse_img(self, page_url, img_name):
  •         img_html = self.request(page_url)
  •         img_url = BeautifulSoup(img_html.text, 'lxml').find('div', class_='main-image').find('img')['src']
  •         self.save_img(img_url, img_name)
  •     def save_img(self, img_url, img_name):
  •         img = self.request(img_url)
  •         with open('{}.jpg'.format(img_name), 'ab') as f:
  •             f.write(img.content)
  •     def request(self, url):
  •         headers = {
  •             'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64)"
  •                           " AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
  •         }
  •         content = requests.get(url, headers=headers, allow_redirects=False)
  •         if content.status_code != 200:
  •             return False
  •         else:
  •             return content
  •     def mkdir(self, path):  # 这个函数创建文件夹
  •         path = path.strip()
  •         isExists = os.path.exists(os.path.join("D:\mzitu", path))
  •         if not isExists:
  •             print(u'创建', path, u'文件夹')
  •             os.makedirs(os.path.join("D:\MZITU", path))
  •             os.chdir(os.path.join("D:\mzitu", path))  # 切换到目录
  •             return True
  •         else:
  •             print(u'名字叫做', path, u'的文件夹已经存在了')
  •             return False
  • if __name__ == '__main__':
  •     base_url = 'http://www.mzitu.com'
  •     spider = Spider(base_url)
  •     spider.run()[/ol]复制代码
  • 回复

    使用道具 举报

    49

    主题

    1277

    回帖

    2767

    积分

    金牌会员

    积分
    2767
    发表于 2017-5-17 11:22:10 | 显示全部楼层
    大佬 这个是干啥的
    回复

    使用道具 举报

    793

    主题

    4273

    回帖

    1万

    积分

    论坛元老

    积分
    11087
    发表于 2017-5-17 11:23:24 | 显示全部楼层
    不明觉厉

    回复

    使用道具 举报

    48

    主题

    131

    回帖

    454

    积分

    中级会员

    积分
    454
    发表于 2017-5-17 11:24:14 | 显示全部楼层
    k抓黄图的?yc010t
    回复

    使用道具 举报

    30

    主题

    511

    回帖

    1206

    积分

    金牌会员

    积分
    1206
    发表于 2017-5-17 11:26:13 | 显示全部楼层
    python扒图的代码?没学习过python,只能用JS的眼光去看
    回复

    使用道具 举报

    144

    主题

    149

    回帖

    826

    积分

    高级会员

    积分
    826
    发表于 2017-5-17 11:27:19 | 显示全部楼层
    扒 http://www.mzitu.com上的图片的
    回复

    使用道具 举报

    85

    主题

    1398

    回帖

    3211

    积分

    论坛元老

    积分
    3211
    发表于 2017-5-17 11:29:11 | 显示全部楼层
    base_url = 'http://www.mzitu.com'
    回复

    使用道具 举报

    26

    主题

    637

    回帖

    1460

    积分

    金牌会员

    积分
    1460
    发表于 2017-5-17 11:32:36 | 显示全部楼层
    PY交易么
    回复

    使用道具 举报

    209

    主题

    744

    回帖

    2147

    积分

    金牌会员

    积分
    2147
    发表于 2017-5-17 11:34:07 | 显示全部楼层
    不错不错厉害的MJJ
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2026-3-19 01:49 , Processed in 0.014865 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

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