鱼C论坛

 找回密码
 立即注册
查看: 3996|回复: 11

为什么照写的,煎蛋MM爬虫只能下载当前页

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

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

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

x
import urllib.request
import os
import re
import random
#proxyip=['58.252.72.179:3128','111.13.136.59:843','183.203.208.162:8118','120.198.243.111:80']
def openurl(url):
    #proxy = urllib.request.ProxyHandler({'http':random.choice(proxyip)})
    #opener = urllib.request.build_opener(proxy)
    #urllib.request.install_opener (opener)
    request = urllib.request.Request(url)
    request.add_header('User-Agent',"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11")
    reponse = urllib.request.urlopen (request)
    data = reponse.read()
    return data
def find_imgs(page_url):
    data = openurl(page_url).decode('utf-8')
    img_addrs = []
    #a = data.find('img src=')
    #while a != -1:
        #b = data.find('.jpg',a,a+255)
        #if b!= -1:
            #img_addrs.append(data[a+9:b+4])
        #else:
            #b = a+9
        #a = data.find('img src=',b)
    img_addrs = re.findall('img src="(.+\.jpg)',data)
    #print(img_addrs)
    return img_addrs
def save_imgs(folder,img_addrs):
    for each in img_addrs:
        filename =each.split('/')[-1]
        with open(filename,'wb') as f:
            img = openurl(each)
            f.write(img)

def get_page(url):
    data = openurl(url).decode('utf-8')
    # a = data.find('current-comment-page')+23
    # b = data.find(']',a)
    mat=re.search('current-comment-page">\[(\d+)',data)
    return mat.group(1)
   
def download_mm(folder='ooxx',pages=10):
    if not os.path.isdir(folder):
        os.mkdir(folder)
    os.chdir(folder)
    url = 'http://www.jandan.net//ooxx//'
    page_num = int(get_page(url))
    for i in range(pages):
        page_num -= 1
        page_url = url + 'page-' + str(page_num) + '#comments'
        img_addrs =find_imgs(page_url)
        save_imgs(folder,img_addrs)
        print(page_url)
        del img_addrs
if __name__ == '__main__':
    download_mm()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-14 17:50:45 | 显示全部楼层
同问,帮顶,我也遇到了这种问题
明明和小甲鱼视频中写的一模一样,我还专门下了源代码用BCompare比对,分毫无误
可就是只能爬一张图片,感觉好郁闷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-15 10:27:33 | 显示全部楼层
自己解决了  url = 'http://www.jandan.net//ooxx//'
改成 url = 'http://jandan.et/ooxx/'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-15 10:28:05 | 显示全部楼层
改成 url = 'http://jandan.net/ooxx/'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-16 09:45:19 | 显示全部楼层
sbwcwusi 发表于 2015-3-15 10:28
改成 url = 'http://jandan.net/ooxx/'

我用的地址一直是这个呀,可是还爬不满
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-8 22:05:21 | 显示全部楼层
在find_imgs函数的最后加两个img_addrs.pop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-10 09:16:33 | 显示全部楼层
顶一下!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-10 09:22:07 | 显示全部楼层
顶一下lz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-13 18:27:40 | 显示全部楼层
我之前也是只爬取得一乐网页上的图片,之后显示URLError,我是把列表中的图片的所有地址打印下来才发现的问题,后来把find(img src=)改成(img src=''),多加了一个双引号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-2 03:10:44 | 显示全部楼层
  # a = data.find('current-comment-page')+23

  #img_addrs.append(data[a+9:b+4])

这些语句里的  +23  +9  +4 是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-1-25 08:33:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-31 12:49:30 | 显示全部楼层
怎么绕过煎蛋的反爬虫机制啊,只能爬取10几张现在
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 19:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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