• 爬虫爬取博客园自己or他人发布文章代码


    import requests
    from bs4 import BeautifulSoup
    import os
    
    
    class mzitu():
    
        def __init__(self):
            self.headers = {
                'User-Agent': "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"}
    
        def all_url(self, url):
            html = self.request(url)  # #调用request函数把套图地址传进去会返回给我们一个response
            all_a = BeautifulSoup(html.text, 'html.parser').find('div', class_='all').find_all('a')
            # 页面更改 多了一个早期图片 需要删掉(小伙伴们 可以自己尝试处理一下这个页面)
            all_a.pop(0)
            # 上面是删掉列表的第一个元素
            for a in all_a:
                title = a.get_text()
                print(u'开始保存:', title)  # #加点提示不然太枯燥了
                path = str(title).replace("?", '_')  # #我注意到有个标题带有 ?  这个符号Windows系统是不能创建文件夹的所以要替换掉
                self.mkdir(path)  # #调用mkdir函数创建文件夹!这儿path代表的是标题title哦!!!!!不要糊涂了哦!
                href = a['href']
                self.html(href)  # #调用html函数把href参数传递过去!href是啥还记的吧? 就是套图的地址哦!!不要迷糊了哦!
    
        def html(self, href):  # #这个函数是处理套图地址获得图片的页面地址
            html = self.request(href)
            self.headers['referer'] = href
            max_span = BeautifulSoup(html.text, 'html.parser').find('div', class_='pagenavi').find_all('span')[-2].get_text()
            for page in range(1, int(max_span) + 1):
                page_url = href + '/' + str(page)
                self.img(page_url)  # #调用img函数
    
        def img(self, page_url):  # #这个函数处理图片页面地址获得图片的实际地址
            img_html = self.request(page_url)
            img_url = BeautifulSoup(img_html.text, 'html.parser').find('div', class_='main-image').find('img')['src']
            self.save(img_url)
    
        def save(self, img_url):  # #这个函数保存图片
            name = img_url[-9:-4]
            img = self.request(img_url)
            f = open(name + '.jpg', 'ab')
            f.write(img.content)
            f.close()
    
        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
    
        def request(self, url):  # # 这个函数获取网页的response 然后返回
            content = requests.get(url, headers=self.headers)
            return content
    
    
    Mzitu = mzitu()  # #实例化
    Mzitu.all_url('http://www.mzitu.com/all')  # # 给函数all_url传入参数  你可以当作启动爬虫(就是入口)

    其中需要把博客id名和url首页值替换掉即可!

  • 相关阅读:
    Windows10远程桌面连接提示:出现身份验证错误,要求的函数不受支持
    mybatis 中 if-test 判断大坑
    hutool的DateUtil工具类
    SpringBoot启动过程
    数据库事务的隔离级别
    EasyUI管理后台模板(附源码)
    springmvc中自定义拦截器以及拦截器的执行过程
    文件上传(MultipartFile)
    文件下载(使用springmvc框架中ResponseEntity对象)
    json格式实现数据传输
  • 原文地址:https://www.cnblogs.com/licongzhuo/p/10613868.html
Copyright © 2020-2023  润新知