鱼C论坛

 找回密码
 立即注册
查看: 19320|回复: 34

爬虫爬取妹子图遇到的困难

[复制链接]
发表于 2015-12-23 17:10:17 | 显示全部楼层 |阅读模式
5鱼币
urllib.error.URLError: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。>

是怎么回事啊   百思不得姐

最佳答案

查看完整内容

首先你的代码能运行,但我的报错和你的不一样,我的报错信息如下 其次,你的报错我看了,是因为字符串查找也就是find_imgs(url)模块有问题,可以自行对照源代码进行修改。 最后,代码下次最好能放代码区发表,避免不必要的麻烦。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-23 17:10:18 | 显示全部楼层
starryzwh 发表于 2015-12-24 12:04
import urllib.request
import os
import random

首先你的代码能运行,但我的报错和你的不一样,我的报错信息如下
  1. Traceback (most recent call last):
  2.   File "E:\gr\git\bbs.py", line 64, in <module>
  3.     download_mm()
  4.   File "E:\gr\git\bbs.py", line 60, in download_mm
  5.     save_imgs(folder, img_addrs)
  6.   File "E:\gr\git\bbs.py", line 45, in save_imgs
  7.     with open(filename, 'wb') as f:
  8. OSError: [Errno 22] Invalid argument: 'script><!-- niuza -->\r\n\t\t\t\t<script>\r\nvar str=new Array("1.jpg'
复制代码

其次,你的报错我看了,是因为字符串查找也就是find_imgs(url)模块有问题,可以自行对照源代码进行修改。
最后,代码下次最好能放代码区发表,避免不必要的麻烦。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-23 17:13:57 | 显示全部楼层
(⊙v⊙)嗯,对方服务器给你 DROP 掉了……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-23 17:26:16 | 显示全部楼层
小甲鱼 发表于 2015-12-23 17:13
(⊙v⊙)嗯,对方服务器给你 DROP 掉了……

那。。。有什么解决的办法么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-23 21:03:11 | 显示全部楼层
代码发来看看才好说吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-24 12:04:00 | 显示全部楼层
zxszx4 发表于 2015-12-23 21:03
代码发来看看才好说吧

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 5.1; rv:43.0) Gecko/20100101 Firefox/43.0')
   
   
    response = urllib.request.urlopen(req)
    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)

    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 = url_open(each)
            f.write(img)

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()
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-24 13:16:06 | 显示全部楼层
听说现在煎蛋已经禁掉了爬虫。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-12-24 14:35:47 | 显示全部楼层
ianv 发表于 2015-12-24 13:16
听说现在煎蛋已经禁掉了爬虫。

没有吧 这几天才学的还能用
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-24 16:18:07 | 显示全部楼层
ianv 发表于 2015-12-24 13:16
听说现在煎蛋已经禁掉了爬虫。

搜噶  原来是这样
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-24 23:05:42 | 显示全部楼层
zxszx4 发表于 2015-12-24 21:49
首先你的代码能运行,但我的报错和你的不一样,我的报错信息如下

其次,你的报错我看了,是因为字符串 ...

好的  实在感谢:handshake
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-20 20:55:41 | 显示全部楼层
表示刚看完那课,刚开始可以下载第一页的7张图片,到后边我的IP就被河蟹了,然后代理访问一开始能下载一张然并卵的图,之后就是404了(404我理解为代理服务器带宽不够)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-5 15:58:39 | 显示全部楼层
小爷我丑不死你 发表于 2016-1-20 20:55
表示刚看完那课,刚开始可以下载第一页的7张图片,到后边我的IP就被河蟹了,然后代理访问一开始能下载一张 ...

代理ip那一可你的代码能成功么?我怎么不行啊?一直报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-5 16:09:56 | 显示全部楼层
cosJin 发表于 2016-2-5 15:58
代理ip那一可你的代码能成功么?我怎么不行啊?一直报错

一直是这个错误  你能成功的话能不能给我看一下你的代码??[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-14 22:34:59 | 显示全部楼层
我的也是这个错误,代码检查了好几遍。
  1. Traceback (most recent call last):
  2.   File "C:/Users/Administrator/PycharmProjects/untitled/download_mm.py", line 67, in <module>
  3.     download_mm()
  4.   File "C:/Users/Administrator/PycharmProjects/untitled/download_mm.py", line 59, in download_mm
  5.     page_num = int(get_page(url))
  6.   File "C:/Users/Administrator/PycharmProjects/untitled/download_mm.py", line 21, in get_page
  7.     html = url_open(url).decode('utf-8')
  8.   File "C:/Users/Administrator/PycharmProjects/untitled/download_mm.py", line 15, in url_open
  9.     response = urllib.request.urlopen(url)
  10.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 162, in urlopen
  11.     return opener.open(url, data, timeout)
  12.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 465, in open
  13.     response = self._open(req, data)
  14.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 483, in _open
  15.     '_open', req)
  16.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain
  17.     result = func(*args)
  18.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 1268, in http_open
  19.     return self.do_open(http.client.HTTPConnection, req)
  20.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 1242, in do_open
  21.     raise URLError(err)
  22. urllib.error.URLError: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-14 23:02:58 | 显示全部楼层
slaynzane 发表于 2016-2-14 22:34
我的也是这个错误,代码检查了好几遍。

和你遇到一样的问题,应该是煎蛋网禁止爬虫了
用这个网站 www.chunmm.com是可以爬的
代码给你了。。。
就是把小甲鱼视频上的代码稍作修改

  1. import urllib.request as u
  2. import os

  3. def url_open(url):
  4.     req = u.Request(url)
  5.     req.add_header('User-Agent' , 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0')
  6.     response = u.urlopen(url)
  7.     html = response.read()
  8.     return html

  9. def find_imgs(url):
  10.     html = url_open(url).decode('utf-8')
  11.     img_addrs = []

  12.     a = html.find('img id="maxImg1" src=')
  13.     b = html.find('.jpg', a , a+255)
  14.     if b != 1:
  15.         img_addrs.append(html[a+22:b+4])

  16.     #print(img_addrs[0])
  17.     return img_addrs[0]
  18.    

  19. def save_imgs(folder, img_address):
  20.     filename = img_address.split('/')[-1]
  21.     with open(filename, 'wb') as f:
  22.         img = url_open(img_address)
  23.         f.write(img)

  24. def download_mm(folder = 'jiandan', pages = 10):
  25.     # 生成文件夹
  26.     os.mkdir(folder)
  27.     # 改变工作目录
  28.     os.chdir(folder)

  29.     url = 'http://www.chunmm.com/meixiong/50213-'
  30.     #page_num = int(get_page(url))
  31.    
  32.     for i in range(1,pages):
  33.         #page_num -= i
  34.         page_url = url + str(i) + '.html'

  35.         img_address = find_imgs(page_url)
  36.         save_imgs(folder, img_address)

  37. if __name__ == '__main__':
  38.     download_mm()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-17 20:18:02 | 显示全部楼层
shuofxz 发表于 2016-2-14 23:02
和你遇到一样的问题,应该是煎蛋网禁止爬虫了
用这个网站 www.chunmm.com是可以爬的
代码给 ...

谢谢了!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-20 12:12:31 | 显示全部楼层
Python的用途有哪些啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-4-4 21:51:45 | 显示全部楼层
zxszx4 发表于 2015-12-23 17:10
首先你的代码能运行,但我的报错和你的不一样,我的报错信息如下

其次,你的报错我看了,是因为字符串 ...

层主,错误信息跟你一模一样,请问解决了没有?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-4-5 18:05:36 | 显示全部楼层
同楼上
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-12 20:23:45 | 显示全部楼层
shuofxz 发表于 2016-2-14 23:02
和你遇到一样的问题,应该是煎蛋网禁止爬虫了
用这个网站 www.chunmm.com是可以爬的
代码给 ...

Traceback (most recent call last):
  File "D:/大三下/python/代码/新建文件夹/新建文件夹/download_mm.py", line 47, in <module>
    download_mm()
  File "D:/大三下/python/代码/新建文件夹/新建文件夹/download_mm.py", line 44, in download_mm
    save_imgs(folder, img_address)
  File "D:/大三下/python/代码/新建文件夹/新建文件夹/download_mm.py", line 26, in save_imgs
    with open(filename, 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: ''
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 10:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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