百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Python 爬虫之Scrapy《下》

liuian 2024-12-07 14:59 44 浏览

今天这篇文章主要是分享两个技术点。
第一翻页数据如何处理;
第二构建一个db pipeline来获取数据并入库。


第一部分:翻页处理

在前面的文章中已经能够正常地提取我们想要的页面数据了,但是这只是一个页面想要的数据,如果是有很多页面的数据要处理,我们如何来爬取了。

page=1
start_urls=[] #这个是scrapy框架中定义好的,不可以修改
while (page < 7): #根据自身爬取的页面来定义
    print("the page is:", page)
    url = 'http://lab.scrapyd.cn/page/' + str(page) #对翻页的链接进行拼接
    start_urls.append(url) #追加到上面定义好的列表中去
    page += 1 #好让循环可以退出


def parse(self, response):
    items=LabItem()
    for sel in response.xpath('//div[@class="col-mb-12 col-8"]'):
        print(sel)
        for i in range(len(sel.xpath('//div[@class="quote post"]//span[@class="text"]/text()'))):
            title = sel.xpath('//div[@class="quote post"]//span[@class="text"]/text()')[i].get()
            author = sel.xpath('//div[@class="quote post"]//small[@class="author"]/text()')[i].get()
            items["title"]=title
            items["author"] = author
            yield items

源码中会不断的遍历start_urls这个列表里面的链接地址,并向这个列表里面的链接地址发出request请求,拿到response后再来解析页面数据,源码如下图所示:



第二部分:db pipeline 数据处理

Step1: 创建数据库与表,如下图所示


Step2: 创建sqlitePipeline类并配置setting.py文件

sqlitePipeline类代码如下:
class sqlitePipeline(object):


    def __init__(self):
        print("当爬虫执行开始的时候回调:open_spider")
        self.conn = sqlite3.connect("test.db")
        self.cur = self.conn.cursor()
        self.table='''
        create TABLE IF NOT EXISTS scrapy0725( 
         id  INTEGER   PRIMARY KEY AUTOINCREMENT,
            `author` varchar(255) DEFAULT NULL,
            `title` varchar(2000) DEFAULT NULL
         );
        '''
        self.cur.execute(self.table)




    def process_item(self, item, spider):
        print("开始处理每一条提取出来的数据==============")
        # content = json.dumps(dict(item),ensure_ascii=False)+"\n"
        content = dict(item)
        print("*" * 100)
        insert_sql="INSERT INTO scrapy0725 (author,title) VALUES ('"+str(content['author']).replace("'","")+"','"+str(content['title']).replace("'","")+"')"
        print(insert_sql)
        print("*"*100)
        self.cur.execute(insert_sql)
        self.conn.commit()
        print("*"*100)
        return item


    def close_spider(self, spider):
        sql = "select * from scrapy0725"
        result=self.cur.execute(sql)
        for res in result:
            print(res)
        self.cur.close()
        self.conn.close()
        print("当爬虫执行结束的时候回调:close_spider")


setting.py 配置如下:
ITEM_PIPELINES = {
   'lab.pipelines.sqlitePipeline':500,
   # 'lab.pipelines.FilePipeline': 300,
}


Step3: 执行此命令 scrapy crawl labs

Step4: 查询数据库是否insert成功,如下图所示:

总结:

Python + Scrapy爬虫的文章暂时就分享到这里,Scrapy的爬虫效率还是不错的,大家动手开始实践吧。

相关推荐

苹果16突然黑屏关机(苹果11突然黑屏)

苹果手机突然黑屏但是没关机的原因:一般情况下,死机黑屏都是软件系统原因造成的,可能是由于你安装的软件内部冲突所导致的。严重的时候还会花屏重启。还有可能就是手机使用时间长,热量散发不及时。只要同时按住关...

子网掩码和网关怎么填(子网掩码与网关怎么设置)

1、以WIN10系统为例,电脑的ip地址、默认网关以及子网掩码可以通过进入到该电脑的网络连接属性界面进行填写。打开属性界面以后,选择手动。然后输入正确的编码即可(其中的默认网关与路由器IP地址相同)。...

windows10不激活影响使用吗(win 10不激活有什么影响)

windows10不激活能用一般情况下,不激活的确可以正常使用,但是会有一些功能受到限制。具体的限制如下所示:首先,您的屏幕右下角会显示“激活Windows”的水印;其次,您无法在“个性化”下使用任...

pdf转换器免费(pdf转换器在线版)
pdf转换器免费(pdf转换器在线版)

1.可检索内容的PDF(内容可以用鼠标选中的非双层PDF)文件,推荐用下面软件转换:PDFToWordConverter,是一款将AdobePDF文档转换成Word文档的工具软件,它支持文字,图像及其它内容的输出。这款软件可以...

2025-12-24 06:55 liuian

office2013激活工具win11(office2013激活工具toolkit)

用专门的激活工具就可以啦。1、待安装完Office2013后,解压并运行“MicrosoftToolkit.exe”程序,在弹出的程序界面中点击“OfficeButton”按钮以便打开“Office破...

手机登录126邮箱网页登录入口

www.126.com126邮箱拥有3G超大存储空间,支持超大2G附件,采用了创新Ajax技术,同等网络环境下,页面响应时间最高减少90%,垃圾邮件及病毒有效拦截率超过98%和99.8%。126邮箱采...

全国中高风险地区最新名单(全国中高风险地区最新名单7.29)

浦东新区康桥镇环桥路1488弄小区,黄浦区南京东路街道西藏中路180号高盛商厦5楼,静安区共和新路街道沪太路785号B座501西区天空音乐量贩式KTV,松江区小昆山镇平原街86弄平原新村,虹口区北外滩...

爱吾游戏宝盒破解版(爱吾游戏宝盒破解版2023最新版本)

爱吾游戏宝盒闪退有以下原因:可能是游戏与手机系统不兼容,卸载游戏后重新安装最新版本,或者升级手机系统,2.有的游戏程序会与其它正在开启的应用有冲突,将后台运行的应用全部关闭再重新启动游戏就可以了要降低...

win8激活码免费领取(windows8激活码免费)

1、首先我们下载一个能够永久激活win8系统的KMSpico激活工具。2、然后将“KMSpico_setup”双击打开进行安装。3、安装目录随便选择就行了,安装完成之后找到EXE文件,以管理员身份运行...

微信安装官方正版(2025版微信官方正版)

必须先安装微信,如果自己的微信号和密码忘了可以通过绑定的手机号码进行找回,操作步骤如下:1、在手机上点击打开微信,来到登陆窗口,点击”找回密码“。2、在找回密码界面,选择”通过手机号码找回”,然后...

大白菜u盘启动怎么装系统(大白菜u盘启动盘怎么装系统win10)

  1、根据上面的教程制作好大白菜pe启动盘,然后将下载的操作系统iso文件直接复制到U盘的GHO目录下;  2、在需要装系统的电脑上插入U盘,重启后不停按F12、F11、Esc等快捷键打开启动菜单,...

360软件管家使用方法(360软件管家使用方法视频)

步骤:1、只要在提示条上点击“安全保存”按钮,即可方便快捷地将网站的帐号密码保存下来,且网站会出现在登录管家主面板的网站列表中。2、登录360安全浏览器后可使用云加密的网站列表,帐号密码安全性进一步提...

originos下载(originos官方下载地址)

已经在官网上进行下载。originos3.0从目前已经在vivo手机的官网中可以进行下载。先登录进vivo官网,然后再找到系统的专区,找到最新版本的originos3.0,然后选择你手机的型号。进行...

文件夹怎样加密码保护(文件夹如何加密码锁)

1.鼠标右键点击电脑桌面里面要加密的文件或者文件夹,选择“属性”;2.在“常规”下方,选择“高级”选项;3.之后就会继续弹出一个窗口,在压缩或加密属性下,选择“加密内容以便保护数据”即可。.鼠标右键...

office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)