鱼C论坛

 找回密码
 立即注册
查看: 1376|回复: 1

[已解决]python中的scrapy问题

[复制链接]
发表于 2020-8-29 22:38:58 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 黑盒子 于 2020-8-29 22:40 编辑

如何用scrapy爬图片呀,我爬到了图片地址,但是不知道用scrapy怎么把图片保存到文件夹中,求教(最好能有个代码例子

还有一个,就是再用request爬取的时候,添加头文件是用add_header()好,还是用get()方法好,看网上都的教程基本上用后者,小甲鱼课上例子用的又是前者...

最后的最后,就是爬虫用request和scrapy哪个方便些,我用request爬有的会报302,scrapy爬就没事...,求解答
最佳答案
2020-8-29 23:12:25
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据

保存图片的方式应该是一样的吧,例如:
import requests,os
from  bs4 import  BeautifulSoup
pt='C:/Users/Administrator/Desktop/图片/'
p=os.path.exists(pt)
if not p:
    os.makedirs(pt)
else:
    print('存在,跳过。。。')
    pass
t=0
for j in range(5):      #有五页,循环5遍把每一页都下下来
    a=requests.get('http://www.win4000.com/zt/rili_%s.html'%j)  #找出规律,每一页就变最后以恶数字
    b=BeautifulSoup(a.text,'lxml')      #解析每一页的数据
    c=b.find_all('ul',class_='clearfix')    #最小父级
    d=c[1].find_all('li')                   #第二个正好是我们找的数据所以用[1]
    for i in d:                             #循环每一个‘li’标签,
        t+=1
        f=i.find('a')['href']               #提取li标签种a标签里面href的属性
        a1=requests.get(f)                  #继续代入解析网页
        b1=BeautifulSoup(a1.text,'lxml')
        c1=b1.find('div',class_='pic-meinv')
        e1=c1.find('img')['src']            #得到图片链接地址
        h=requests.get(e1).content          #转成二进制
        with open(pt+e1[-10:],'wb')as g:    #把创建的目录加图片倒数10位作为名称,已二进制写入
            g.write(h)                      #写入数据
            print(e1[-10:],'下载完成')

第二个问题,不清楚有什么区别,一般都是get(),post(),学的不深,不太了解

第三个问题,感觉框架就是成熟的爬虫代码,能用框架爬的,肯定效率高一点吧,request和scrapy不是一种概念类型吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-29 23:12:25 | 显示全部楼层    本楼为最佳答案   
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据

保存图片的方式应该是一样的吧,例如:
import requests,os
from  bs4 import  BeautifulSoup
pt='C:/Users/Administrator/Desktop/图片/'
p=os.path.exists(pt)
if not p:
    os.makedirs(pt)
else:
    print('存在,跳过。。。')
    pass
t=0
for j in range(5):      #有五页,循环5遍把每一页都下下来
    a=requests.get('http://www.win4000.com/zt/rili_%s.html'%j)  #找出规律,每一页就变最后以恶数字
    b=BeautifulSoup(a.text,'lxml')      #解析每一页的数据
    c=b.find_all('ul',class_='clearfix')    #最小父级
    d=c[1].find_all('li')                   #第二个正好是我们找的数据所以用[1]
    for i in d:                             #循环每一个‘li’标签,
        t+=1
        f=i.find('a')['href']               #提取li标签种a标签里面href的属性
        a1=requests.get(f)                  #继续代入解析网页
        b1=BeautifulSoup(a1.text,'lxml')
        c1=b1.find('div',class_='pic-meinv')
        e1=c1.find('img')['src']            #得到图片链接地址
        h=requests.get(e1).content          #转成二进制
        with open(pt+e1[-10:],'wb')as g:    #把创建的目录加图片倒数10位作为名称,已二进制写入
            g.write(h)                      #写入数据
            print(e1[-10:],'下载完成')

第二个问题,不清楚有什么区别,一般都是get(),post(),学的不深,不太了解

第三个问题,感觉框架就是成熟的爬虫代码,能用框架爬的,肯定效率高一点吧,request和scrapy不是一种概念类型吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 03:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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