鱼C论坛

 找回密码
 立即注册
查看: 952|回复: 19

[已解决]小甲鱼视频里爬虫00xx的代码困扰我1天了

[复制链接]
发表于 2018-8-16 23:20:44 | 显示全部楼层 |阅读模式
30鱼币
  1. def find_imgs(url):
  2.     html = url_open(url).decode('utf-8')
  3.     img_addrs = []

  4.     a = html.find('img src=')

  5.     while a!= -1:
  6.         b = html.find('.jpg', a, a+255)
  7.         if b != -1:
  8.             img_addrs.append(html[a+9:b+4])
  9.         else:
  10.             b = a+9

  11.         a = html.find('img src=', b)

  12.     for each in img_addrs:
  13.         print(each)
  14.         
复制代码

QQ截图20180816231709.png

这里测试地址有没有错 结果测试结果发现打印的地址 http: 不见了  但是a+9应该刚好对应这个地址啊 很困挠 求大神解答一下
最佳答案
2018-8-16 23:20:45
……煎蛋反爬了好吗……
参考-> https://fishc.com.cn/forum.php?m ... hlight=%BC%E5%B5%B0

最佳答案

查看完整内容

……煎蛋反爬了好吗…… 参考-> https://fishc.com.cn/forum.php?mod=viewthread&tid=118774&highlight=%BC%E5%B5%B0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 23:20:45 | 显示全部楼层    本楼为最佳答案   
……煎蛋反爬了好吗……
参考-> https://fishc.com.cn/forum.php?m ... hlight=%BC%E5%B5%B0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-16 23:21:39 | 显示全部楼层
import urllib.request
import os
import random


def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36')

    '''proxies = ['119.6.144.70:81', '111.1.36.9:80', '203.144.144.162:8080']
    proxy = random.choice(proxies)

    proxy_support = urllib.request.ProxyHandler({'http':proxy})
    opener = urllib.request.build_opener(proxy_support)
    urllib.request.install_opener(opener)'''

    response = urllib.request.urlopen(url)
    html = response.read()

    return html


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)

    for each in img_addrs:
        print(each)
        


def save_imgs(folder, img_addrs):
    pass

def download_mm(folder='OOXX', pages=10):
    os.mkdir(folder)
    os.chdir(folder)

    url = "http://jandan.net/ooxx/"
    page_num = int(get_page(url))

    for i in range(pages):
        page_num -= i
        page_url = url + 'page-' + str(page_num) + '#comments'
        img_addrs = find_imgs(page_url)
        save_imgs(folder, img_addrs)

if __name__ == '__main__':
    download_mm()

源码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 23:39:01 | 显示全部楼层
你print 下html就知道了,里面藏了点小陷阱,img src=后边就是非图片网址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 05:10:31 | 显示全部楼层
塔利班 发表于 2018-8-16 23:39
你print 下html就知道了,里面藏了点小陷阱,img src=后边就是非图片网址

print(html) 能打印出图片的页面的页码出来   但是大神我这里的问题咋解决呀
我现在不知道哪里出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 07:30:39 | 显示全部楼层
最爱丽丽 发表于 2018-8-17 05:10
print(html) 能打印出图片的页面的页码出来   但是大神我这里的问题咋解决呀
我现在不知道哪里出错了

你学正则了么,
学了用正则调整

或者find('img src="http')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 08:00:38 | 显示全部楼层
塔利班 发表于 2018-8-17 07:30
你学正则了么,
学了用正则调整

学了 但是没学会 大神能用正则匹配一下嘛 跪谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 08:09:15 | 显示全部楼层
p=r'img src="(http.+?.jpg)'
用re.findall(p,html)返回图片地址列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 09:05:39 | 显示全部楼层
塔利班 发表于 2018-8-17 08:09
p=r'img src="(http.+?.jpg)'
用re.findall(p,html)返回图片地址列表

QQ截图20180817090020.png

是这样嘛  好像还是不行  哇心态都快蹦了 大佬你复制下我的代码在你电脑上运行下可好 顺便帮我修改下
我实在不知道怎么弄了
QQ截图20180817090031.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 09:08:57 | 显示全部楼层
无符号整形 发表于 2018-8-17 08:19
……煎蛋反爬了好吗……
参考-> https://fishc.com.cn/forum.php?mod=viewthread&tid=118774&highlight=%B ...

大佬 你这里面我几个模块都没有 运行不了  要怎么安装呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 09:10:29 | 显示全部楼层
最爱丽丽 发表于 2018-8-17 09:08
大佬 你这里面我几个模块都没有 运行不了  要怎么安装呀

用pip安装啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 09:15:12 | 显示全部楼层

QQ截图20180817091442.png
每次都是这样 我该怎么弄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 09:17:03 | 显示全部楼层
最爱丽丽 发表于 2018-8-17 09:15
每次都是这样 我该怎么弄

环境变量没有设置好
在环境变量里面加上
  1. ;你的Python路径
复制代码

分号切记
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 09:26:06 | 显示全部楼层
的确反爬了,图片格式已经不是你看到的img src=
需要学习新的模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 09:46:35 | 显示全部楼层
无符号整形 发表于 2018-8-17 09:17
环境变量没有设置好
在环境变量里面加上

QQ截图20180817094507.png
我怎么还是安装不了   好难受
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 09:50:08 | 显示全部楼层
最爱丽丽 发表于 2018-8-17 09:46
我怎么还是安装不了   好难受

Pyexecjs
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 10:00:15 | 显示全部楼层

大神 beautifulsoup  输入什么呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-17 10:01:35 | 显示全部楼层
最爱丽丽 发表于 2018-8-17 10:00
大神 beautifulsoup  输入什么呀

beautifulsoup4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 10:03:12 | 显示全部楼层

感谢 感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 10:17:40 | 显示全部楼层

大佬 你的这些魔板在哪学习呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 11:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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