鱼C论坛

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

新手写的一个小爬虫代码报错问题

[复制链接]
发表于 2018-1-31 18:02:20 | 显示全部楼层 |阅读模式

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

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

x
为什么会报错,下载不了文件,请指导,谢谢!



from bs4 import BeautifulSoup
import requests,urllib.request
import time

header ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
         'Cookie':'UM_distinctid=1614b695a077d-08cbdffb9f10d5-3c604504-144000-1614b695a0867a; Hm_lvt_ecf0502609cf895cbe057f7979b317bc=1517388652,1517388682; Hm_lpvt_ecf0502609cf895cbe057f7979b317bc=1517388682; CNZZDATA1256181055=1650880320-1517383831-null%7C1517389232'}
url = 'http://www.youwu.cc/guonei/list_1.html'
web_data =requests.get(url,headers=header)
soup = BeautifulSoup(web_data.text,'lxml')
imgs = soup.select('div.item_t > div > a > img')
img_list =[]
for img in imgs:
    img_list.append(img.get('src'))
#print(img_list)
path = "D:/aaa/"
for pic in img_list:
    urllib.request.urlretrieve(pic, path + pic[-10:])
    time.sleep(2)





提示:
       Traceback (most recent call last):
  File "D:/test/jianda.py", line 17, in <module>
    urllib.request.urlretrieve(pic, path + pic[-10:])
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 248, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\liujun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-31 19:31:01 | 显示全部楼层
emmm,你这个被识别成爬虫了,你只给requests加了headers,没有给urlib模块加,下载时你用的是urlib模块所以不行,你可以直接用requests访问加下载
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-31 20:16:56 | 显示全部楼层
好像不对,找到的图片网址打开刷新就会回到原来的主站上了。。。wtf
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-1 08:47:36 | 显示全部楼层
mintaka 发表于 2018-1-31 20:16
好像不对,找到的图片网址打开刷新就会回到原来的主站上了。。。wtf

请问有办法解决吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-1 19:23:04 | 显示全部楼层
zgg1212lzj 发表于 2018-2-1 08:47
请问有办法解决吗

搞不太定,我用 selenium 可以访问到图片 但requests什么的只能访问到主站,可能还是 headers的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-11 09:17:27 | 显示全部楼层
mintaka 发表于 2018-2-1 19:23
搞不太定,我用 selenium 可以访问到图片 但requests什么的只能访问到主站,可能还是 headers的问题

感谢,,已经搞定了,在headers里加了Referer可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-11 10:49:11 | 显示全部楼层
zgg1212lzj 发表于 2018-2-11 09:17
感谢,,已经搞定了,在headers里加了Referer可以了

原来是加refer吗,我把所有headers都加进去就错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 15:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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