鱼C论坛

 找回密码
 立即注册
查看: 1771|回复: 4

理解不了爬虫代码,老是报错

[复制链接]
发表于 2020-12-28 09:41:28 | 显示全部楼层 |阅读模式

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

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

x
import requests,time,parsel
headers={
    89'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
    'Referer': 'https://www.mzitu.com/mm/'
}

def Download_tu(tu_download,tu_name):#下载一张图片
    tu_pian=requests.get(tu_download,headers=headers)
    s='C:\用户\ccj\Desktop\图片-1'#设置储存路径
    with open(s+'\\'+tu_name+'.jpg','wb') as f:
        f.write(tu_pian.content)#写入图片

def Download_tuji(url,n):#下载一个图集
    response=requests.get(url,headers=headers)#发送网络请求
    nei_rong=parsel.Selector(response.text)#解析网页
    ye_shu=int(nei_rong.xpath('//div[4]/a[5]/span/text()').get())#获取图片最大页数
    for i in range(ye_shu):
        time.sleep(2)#设置下载延时
        tu_download=nei_rong.xpath('//p/a/img/@src').get()#获取图片下载地址
        huan_ye=nei_rong.xpath('//p/a/@href').get()#获取换页地址
        tu_name=nei_rong.xpath('//div[1]/h2/text()').get()#提取图片名字
        print(f'正在下载第{i+1}张:{tu_name},此系列共有张{ye_shu}图片,总共下载了{n}张')
        #print(tu_download,huan_ye,tu_name)
        Download_tu(tu_download,tu_name)
        url=huan_ye#换一页
        response=requests.get(url,headers=headers)#换请求新页面
        nei_rong=parsel.Selector(response.text)
        n+=1#计数
    return n


def Download_yiye(url):#下载整页图
    response=requests.get(url,headers=headers)
    nei_rong=parsel.Selector(response.text)
    urls=nei_rong.xpath('//*[@id="pins"]/li/a/@href').getall()
    n=1#获取当前页面不同类型图集的链接
    for url in urls:
        print(url)#打印要下载的图集地址
        n=Download_tuji(url,n)#下载图片

url='https://www.mzitu.com/xinggan/'#要爬取的网址
Download_yiye(url)




报错

=================== RESTART: C:\Users\ccj\Desktop\爬虫下载妹子图.py ===================
https://www.mzitu.com/223010
正在下载第1张:极品眼镜娘王雨纯前凸后翘曲线优美 三点半露清晰可见,此系列共有张79图片,总共下载了1张
Traceback (most recent call last):
  File "C:\Users\ccj\Desktop\爬虫下载妹子图.py", line 42, in <module>
    Download_yiye(url)
  File "C:\Users\ccj\Desktop\爬虫下载妹子图.py", line 39, in Download_yiye
    n=Download_tuji(url,n)#下载图片
  File "C:\Users\ccj\Desktop\爬虫下载妹子图.py", line 24, in Download_tuji
    Download_tu(tu_download,tu_name)
  File "C:\Users\ccj\Desktop\爬虫下载妹子图.py", line 10, in Download_tu
    with open(s+'\\'+tu_name+'.jpg',) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\用户\\ccj\\Desktop\\图片-1\\极品眼镜娘王雨纯前凸后翘曲线优美 三点半露清晰可见.jpg'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-28 14:11:41 | 显示全部楼层
本帖最后由 suchocolate 于 2020-12-28 14:13 编辑

再核对一下代码吧。
代码是对的,以wb方式打开文件。
但从报错信息看是以默认r方式打开文件,因为不存在所以报错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-28 16:11:43 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2020-12-28 16:14 编辑

首先,跑了一下楼主的代码,问题在哪里呢?为啥能跑通呢?

截屏2020-12-28 16.07.51.png

为啥我测试了,可以下载?

截屏2020-12-28 16.09.11.png

发现一个小 bug,楼主贴的代码里, header 里面的 user-agent 前面,似乎多了一个数字 89?

如果答案对您有帮助,请设置最佳答案。码字不易,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 13:53:33 | 显示全部楼层
你应该是没创建那个目录吧'C:\\用户\\ccj\\Desktop\\图片-1'。最好加个判断,让它自己创建
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-29 16:00:02 | 显示全部楼层
这个看着,突然发现有问题啊,你这压根就没有改存储路径

存储路径得 os.chdir(PATH)

PATH 就是你文件需要储存的路径

楼主的代码里面那个路径 s,是打开一个名为 s + ... + '.jpg' 为名的文件,例如 'C:\用户\ccj\Desktop\图片-1图片名.jpg'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 13:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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