吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6521|回复: 22
收起左侧

[Python 转载] 爬取由美网精美图片

[复制链接]
beisimm 发表于 2018-10-15 20:19
本帖最后由 beisimm 于 2018-10-16 10:05 编辑

之前发的一个爬虫脚本被删了,本着学习的原则再写一个
[Python] 纯文本查看 复制代码
import os

import requests
import re
from lxml import etree
import threading

"""
使用事项:
1.自己替换Url
2.会自动在当前路径下生成一个downloads文件夹,文件存储在此文件夹内
"""


class Umeispider():

    def __init__(self):
        # 需要爬取的地址,自己替换
        self.base_url = "http://www.umei.cc/bizhitupian/fengjingbizhi/23547.htm"

    def get_url(self):
        urls = []
        if self.base_url[-7] == '_':
            url = self.base_url[:-7] + ".htm"
            # print(url, 7)

        elif self.base_url[-6] == '_':
            url = self.base_url[:-6] + ".htm"
            # print(url, 6)

        else:
            url = self.base_url
            # print(url, 0)
        urls.append(url)
        url2 = url[:-4] + '_{}' + ".htm"
        for Num in range(2, 50):
            urls.append(url2.format(Num))

        # print(urls)

        return urls

    def run(self):
        urls = self.get_url()
        for url in urls:
            # print(url)
            # print('请求地址: ', url)
            html_str = requests.get(url).content.decode('utf-8')
            if re.findall(r'404 Not Found', html_str):
                break
            self.get_image_url_name(html_str)

    def create_folder(self, file_name):
        if not os.path.exists(file_name):
            os.mkdir(file_name)
            print('文件夹%s创建成功' % file_name)

    def get_image_url_name(self, html):
        eroot = etree.HTML(html)
        image_url = eroot.xpath('//div/p//img/@src')[0]
        file_name = eroot.xpath('//strong/text()')[0]
        threading.Thread(target=self.save_image, args=(image_url, file_name)).start()

    def save_image(self, image_url, name):
        print('开始下载:', name)
        content = requests.get(image_url).content
        # 这里输入文件夹名
        folder_name = 'downloads'
        self.create_folder(folder_name)

        path = '%s/%s.jpg' % (folder_name, name)
        with open(path, 'wb') as f:
            f.write(content)

        print('下载完成', name)


if __name__ == '__main__':
    spider = Umeispider()
    # spider.get_url()
    spider.run()

免费评分

参与人数 4吾爱币 +4 热心值 +1 收起 理由
BriefHistoryof + 1 谢谢@Thanks!
DukeAss + 1 热心回复!
4561pkpk + 1 我很赞同!
善良的果仁 + 1 + 1 python牛逼

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

liujiajia 发表于 2018-12-6 08:35
D:\python>python yi.py
  File "yi.py", line 2
     
    ^
SyntaxError: invalid character in identifier
这样报错怎么解决
 楼主| beisimm 发表于 2018-12-10 17:35
liujiajia 发表于 2018-12-6 08:35
D:\python>python yi.py
  File "yi.py", line 2
     

你这样子问我, 我也不知道该怎么回答你呀
sakurakimi 发表于 2018-10-15 20:28
lucka 发表于 2018-10-15 20:40

感谢分享
fq645122 发表于 2018-10-15 20:40
这个怎么玩?
cao_jf 发表于 2018-10-15 20:42

感谢分享
小安xiaoan 发表于 2018-10-15 20:45
感谢分享,刚好在学这个
 楼主| beisimm 发表于 2018-10-15 20:55

安装python解释器然后执行
刹訤 发表于 2018-10-15 21:26
谢谢分享,学习一下
chen180 发表于 2018-10-15 21:28
你们这些写python的每天爬来爬去的,
PikachuKing 发表于 2018-10-15 21:40
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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