首页 > 编程语言 >Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录

时间:2023-10-22 14:03:23浏览次数:30  
标签:XXX Python py 爬虫 爬取 scrapy liaoxuefeng 官网 class

文章转载至:

mob6454cc6f27a3 Python Scrapy 爬虫框架实例(一) 爬虫框架scrapy简单实例

吃面崩掉牙Scrapy爬虫框架入门教程(1)——爬取廖雪峰老师的博客

!!只是爬取一个字段,并不将爬取的数据存储下来。!!

运行环境:

  • window10 x64系统
  • python3.6
  • pycharm
  • anaconda
  • scrapy

安装好以上环境、包之后,打开cmd,输入scrapy startproject liaoxuefeng,出现以下提示后,就说明已经成功创建一个scrapy的新项目:

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架

我这里已经安装好了,再次输入命令后提示说已经存在了,然后会给你贴出路劲,找到所创建的文件夹

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架_02

 在该项目的根目录下,文件夹形式如下:

liaoxuefeng/
    scrapy.cfg
    liaoxuefeng/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
            ...

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架_03

开始编写爬虫代码

打开liaoxuefeng/liaoxuefeng/spiders,创建一个新文件liaoxuefeng.py,写入如下代码:

import scrapy


class LiaoxuefengSpider(scrapy.Spider):
    # 这里是将爬虫定义为scrapy.Spider这个类下的一个实例。
    # Spider这个类定义了爬虫的很多基本功能,我们直接实例化就好,
    # 省却了很多重写方法的麻烦。
    name = 'lxf'
    #这是爬虫的名字,这个非常重要。
    start_urls = ['http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000']
    #这是爬虫开始干活的地址,必须是一个可迭代对象。

    def parse(self, response):
    #爬虫收到上面的地址后,就会发送requests请求,在收到服务器返回的内容后,就将内容传递给parse函数。在这里我们重写函数,达到我们想要的功能。
        titles = response.xpath("//ul[@class='uk-nav uk-nav-side']//a/text()").extract()
        #这是廖雪峰老师python教程的标题列表。我们利用xpath解析器对收到的response进行分析,从而提取出我们需要的数据。//XXX表示任何任何目录下的XXX区块,/XXX表示子目录下的XXX区块,XXX[@class=abc]表示带有class=abc属性值的XXX区块,/text()表示获取该区块的文本。最后加上.extract()表示将内容提取出来。
        for title in titles:
            print (title)
        #这个没什么说的了,直接遍历,然后打印标题。

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架_04

然后进入cmd,在项目的根目录下运行scrapy crawl lxf(这个lxf就是刚才liaoxuefeng.py文件中的name字段,千万不要弄错了),运行成功,将打印当页所有的目录名称:

Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架_05Python scrapy爬虫框架爬取廖雪峰大佬官网Python教程左侧目录_爬虫框架_06

目录挺多的,省略





















标签:XXX,Python,py,爬虫,爬取,scrapy,liaoxuefeng,官网,class
From: https://blog.51cto.com/u_16286833/7975878

相关文章

  • Python教程(15)——Python流程控制语句详解
    Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的,如果你已经学过其他的语言,那么这章节就可以直接跳过。if语句if语句用于......
  • Python教程(15)——Python流程控制语句详解
    Python流程控制是Python编程中非常重要的一部分,它用于控制程序的执行流程。Python提供了多种流程控制语句,包括if语句、while循环、for循环、break和continue语句等。这种流程控制在各个语言中都是大同小异的,如果你已经学过其他的语言,那么这章节就可以直接跳过。if语句if语句用......
  • python--猜数字游戏改编版2--用函数套用
    #猜数字游戏让游戏者决定几到几的数字,用函数做defcaishuzi_game(x,y):importrandomx=int(random.randint(x,y))b=int(input("请输入你要猜的数字"))a=1whilea<5:b=int(input("请输入你要猜的数字"))ifx==b:print("恭......
  • python遍历一个xlsx中的多个表
    遍历xlsx中的多个表:比如说如果有如下xlsx,里面有4张表,如何遍历出4张表中的数据?   步骤:(1)用load_workbook函数打开excel文件,返回一个工作簿对象(2)用工作簿对象获取所有的sheet(3)第一个for循环遍历所有sheet(4)每次遍历sheet时,先用get_sheet_by_name获取要遍历的sheet(5)开始下一个......
  • python-用函数让用户决定要几乘几乘法表
    #n*n乘法表用函数defrenyi_chengfabiao():forainrange(1,x+1):forbinrange(1,x+1):c=a*bifb<=a:print(int(b),"*",int(a),"=",int(c),end="")print()whileTrue......
  • 小白学 Python:将 XML 转换为字典的 Python 程序
    在本文中,我们将讨论如何使用Python将XML转换为字典。使用的模块xmltodict:它是一个Python模块,使使用XML感觉就像使用[JSON]一样。在终端中运行以下命令来安装模块。句法:pip安装xmltodictpprint: pprint模块提供了以格式良好且更具可读性的方式“漂亮打印”任意Python......
  • 小白学 Python:在 Python 中创建 ChatGPT 克隆
    在Python中创建ChatGPT克隆我们将学习如何使用Python中的Flet开发具有多个节点的聊天应用程序以及使用OpenAI的text-davinci-003[ChatGPTAPI]模型引擎制作的应答机器人。Flet是什么?无需直接使用Flutter,程序员就可以使用FletPython库创建实时Web、移动和桌面应用......
  • 小白学 Python: 如何在Python中使用ChatGPT API?
    如何在Python中使用ChatGPTAPI?ChatGPT及其必然的应用。日复一日,我们周围的一切似乎都在通过使用不同人工智能和机器学习技术的多个人工智能模型以及使用Python的聊天机器人而变得自动化,聊天GPT的用途及其有用的应用程序之一我们今天将讨论。因此,在讨论其应用程序之前,让我们先......
  • python包引用方式总结
    本文为博主原创,转载请注明出处:在Python中,有多种引用包的方式。以下是常见的方式:1.import语句import语句是最常见和推荐的引用包的方式。它允许你引入整个包或包中的特定模块/子模块。importpackage_nameimportpackage_name.module_namefrompackage_nameimportmod......
  • 2023 版 Java和python开发线性代数探索
    目录前景提示需求分析1、初始化不需要指定矩阵的尺寸,并且可以直接传入数据。2、可以计算2x2矩阵的逆3、可以做2x2的矩阵乘法Java版本开发一、开发详情1、开发一个子类,如图所示。2、根据问题修改子类,父类,以便真实可用解决1、初始化不需要指定矩阵的尺寸,并且可以直接传入数据。解决......