鱼C论坛

 找回密码
 立即注册
查看: 5097|回复: 6

[作品展示] 新手看小甲鱼教程写的爬虫,多多指教啊

[复制链接]
发表于 2015-12-29 16:40:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# ------------------ladys---------------------- #
import urllib.request
import os
import random

def url_open(url):
        UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"
        req = urllib.request.Request(url)
        req.add_header('User-Agent',UserAgent)
        response = urllib.request.urlopen(req).read()
        return response
        #iplist = ['61.38.252.12:3128','58.255.127.104:80','113.31.80.194:8080','218.213.166.218:81'] #代理ip的数组
        #proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})
        #opener = urllib.request.build_opener(proxy_support)
        #opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36')]
        #urllib.request.install_opener(opener)
        #response = urllib.request.urlopen(url).read()
       
def get_page(url):
    html = url_open(url).decode('utf-8')
    a = html.find('current-comment-page')+23
    b = html.find(']',a)
    return html[a:b]
   

def find_imgs(url):
    html = url_open(url).decode('utf-8')

    img_addrs = []

    a = html.find('img src=')
    while a != -1:
   
        b = html.find('.jpg',a,a+255)
        if b != -1:
            img_addrs.append(html[a+9:b+4])
        else:
            b = a + 9
        a = html.find('img src=',b)
    return img_addrs
               
def save_imgs(folder,img_addrs):
   
    for each in img_addrs:
        filename = each.split('/')[-1]
        if filename.find('<') != -1 or filename.find('!') != -1:
                continue
        else:
                if os.path.isfile(filename) != True:
                        
                        with open(filename,'wb') as f:
                                img =  url_open('http:'+each)
                                f.write(img)
                else:
                        print('图片已经存在了,请明天再试')
                        continue

def download_mm(folder='hanzi',pages=1):
    isdir = os.path.isdir(folder)
    if isdir != True:
        os.mkdir(folder)
    os.chdir(folder)   
   
    url = "http://g.jandan.net/n/hanzi"

    for i in range(pages):
        page_url = url+'?&page='+str(i)
        img_addrs = find_imgs(page_url)
        save_imgs(folder,img_addrs)
        
if __name__ == '__main__':
    download_mm()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-29 18:16:11 | 显示全部楼层
你爬这个网址应该把函数名改成download_gg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-31 00:21:25 | 显示全部楼层
用代码格式<>发布更美观哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-4 09:25:48 | 显示全部楼层
hldh214 发表于 2015-12-29 18:16
你爬这个网址应该把函数名改成download_gg

哈哈,经典
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-4 11:11:48 | 显示全部楼层
感谢楼主无私奉献
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-16 16:58:51 | 显示全部楼层
谢谢分享  正在学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 11:16:37 | 显示全部楼层
小甲鱼爬虫教学视频在哪里啊。。。谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 03:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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