• scrapy框架--


    Scrapy是一个用于爬取数据的Python框架。下面是Scrapy框架的基本操作步骤:

    1. 安装Scrapy:首先,确保你已经安装好了Python和pip。然后,在命令行中运行以下命令安装Scrapy:pip install scrapy

    2. 创建Scrapy项目:使用Scrapy提供的命令行工具创建一个新的Scrapy项目。在命令行中切换到你想要创建项目的目录,并执行以下命令:scrapy startproject project_name。其中,project_name是你自己定义的项目名称。

    3. 定义爬虫:进入项目目录,并在命令行中执行以下命令创建一个新的爬虫:scrapy genspider spider_name website.com。其中,spider_name是你自己定义的爬虫名称,website.com是你要爬取数据的目标网站的域名。

    4. 编写爬虫代码:在项目目录下的spiders文件夹中找到你创建的爬虫文件(以.py结尾),使用文本编辑器打开该文件。在爬虫代码中,你可以定义如何发送请求、处理响应和提取数据等操作。你可以参考Scrapy官方文档来了解更多关于编写爬虫代码的详细信息。

    5. 配置爬虫:如果需要,你可以在项目目录下的settings.py文件中配置爬虫的相关设置,例如设置请求头、设置User-Agent等。

    6. 启动爬虫:在命令行中进入项目目录,并执行以下命令启动爬虫:scrapy crawl spider_name。其中,spider_name是你之前定义的爬虫名称。

    7. 处理爬虫数据:爬虫运行后,它会自动访问目标网站,并根据你定义的规则提取数据。你可以在爬虫代码中定义如何处理这些数据,例如保存到文件、存储到数据库

    1. import scrapy
    2. class ItcastSpider(scrapy.Spider):
    3. name = "itcast"
    4. allowed_domains = ["itcast.cn"]
    5. # 修改起始url
    6. start_urls = ["https://www.itcast.cn/channel/teacher.shtml#ajavaee"]
    7. # 在这个方法中实现爬取逻辑
    8. def parse(self, response):
    9. # 定义对于网站的相关操作
    10. # with open('itcast.html','wb') as f:
    11. # f.write(response.body)
    12. #/html/body/div[1]/div[6]/div/div[2]/div[6]/div/div[2]/div[1]/ul/li/div
    13. # /html/body/div[1]/div[6]/div/div[2]/div[6]/div/div[2]/div[2]/ul/li[1]/div
    14. # 获取所有教师节点
    15. node_list=response.xpath('/html/body/div[1]/div[6]/div/div[2]/div[6]/div/div[2]/div/ul/li/div')
    16. print(len(node_list))
    17. # 遍历
    18. for node in node_list:
    19. temp={}
    20. #
    21. # xpath 方法之后返回是选择器对象列表,,,extract()从选择器中提取数据
    22. temp['name']=node.xpath('./h3/text()').extract_first()
    23. temp['title'] = node.xpath('./h4/text()')[0].extract()
    24. temp['desc'] = node.xpath('./p/text()')[0].extract()
    25. # print(temp)
    26. # {'name': [], 'title': [], 'desc': []}
    27. yield temp

     

    response的用法

     

    1. 获取响应内容:可以使用response.body属性获取响应的原始内容,通常以字节形式表示。如果需要获取解码后的文本内容,可以使用response.text属性。

    2. 获取响应头:可以使用response.headers属性获取响应头信息。它返回一个Headers对象,你可以通过调用其方法或属性来获取特定的头信息,例如response.headers.get('Content-Type')获取Content-Type头的值。

    3. 获取状态码:可以使用response.status属性获取响应的状态码。

    4. 提取数据:可以使用XPath表达式或CSS选择器从响应中提取感兴趣的数据。Scrapy提供了response.xpath()response.css()方法,你可以传入相应的表达式或选择器来提取数据。例如,response.xpath('//title/text()').get()可以获取网页中的标题文本。

    5. 提取链接:可以使用response.follow()方法跟踪和提取链接。你可以将一个链接作为参数传递给该方法,Scrapy将会发送一个新的请求并返回一个新的response对象。

  • 相关阅读:
    CAS,乐观锁
    Unity DOTS 1.0 (5) Baking System、Baking phases 和 Baking World
    【Tomcat】项目部署和Servlet的生命周期
    自定义模块的导入
    Android R 11.x quickstep 手势导航架构和详细实现
    第十六章 Redies
    使用Navicat对比多环境数据库数据差异和结构差异,以及自动DML和DDL脚本
    vue做导入导出excel文档
    axios的使用,cancelToken取消请求
    深入探索OCR技术:前沿算法与工业级部署方案揭秘
  • 原文地址:https://blog.csdn.net/weixin_74711824/article/details/132994573