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

Py

[复制链接]

154

主题

309

回帖

1118

积分

金牌会员

积分
1118
发表于 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]复制代码
  • 回复

    使用道具 举报

    48

    主题

    1208

    回帖

    2590

    积分

    金牌会员

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

    使用道具 举报

    581

    主题

    3406

    回帖

    8621

    积分

    论坛元老

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

    回复

    使用道具 举报

    46

    主题

    126

    回帖

    432

    积分

    中级会员

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

    使用道具 举报

    26

    主题

    492

    回帖

    1128

    积分

    金牌会员

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

    使用道具 举报

    117

    主题

    123

    回帖

    657

    积分

    高级会员

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

    使用道具 举报

    78

    主题

    1216

    回帖

    2750

    积分

    金牌会员

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

    使用道具 举报

    24

    主题

    487

    回帖

    1110

    积分

    金牌会员

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

    使用道具 举报

    209

    主题

    744

    回帖

    2147

    积分

    金牌会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-4-21 19:01 , Processed in 0.019403 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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