首页 > 其他分享 >scrapy 用法

scrapy 用法

时间:2023-09-11 12:11:32浏览次数:25  
标签:baidu pythonProject8 pro 爬虫 lfj scrapy 用法

1、 创建scrapy项目:在终端Terminal运行命令:scrapy startproject 【项目名称】

scrapy startproject lfj_pro

 

PS D:\pythonProject8_scrapy> scrapy startproject lfj_pro
New Scrapy project 'lfj_pro', using template directory 'C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\scrapy\templates\project', created in:
    D:\pythonProject8_scrapy\lfj_pro

You can start your first spider with:
    cd lfj_pro
    scrapy genspider example example.com
PS D:\pythonProject8_scrapy> 

 

 

 

2、 切换目录,创建爬虫程序

切换目录:cd 【项目目录】

创建爬虫程序: scrapy genspider 【爬虫程序名字】【域名/起始爬虫地址】

PS D:\pythonProject8_scrapy> cd lfj_pro           
PS D:\pythonProject8_scrapy\lfj_pro> scrapy genspider lfj_baidu https://www.baidu.com
Created spider 'lfj_baidu' using template 'basic' in module:
  lfj_pro.spiders.lfj_baidu

创建的py文件

 

 

PS D:\pythonProject8_scrapy\lfj_pro> scrapy genspider lfj_jd  https://jd.com
Created spider 'lfj_jd' using template 'basic' in module:
  lfj_pro.spiders.lfj_jd

3、 运行脚本:scrapy crawl 【脚本名字】,记得先把settings.py里的【ROBOTSTXT_OBEY】的值改为【False】

scrapy crawl lfj_baidu

这里有个需要注意的问题,直接运行爬虫程序会显示Forbidden,这是因为robots(网站跟爬虫间的协议)

2023-09-11 11:48:54 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://baidu.com/robots.txt> (referer: None)
2023-09-11 11:48:54 [scrapy.downloadermiddlewares.robotstxt] DEBUG: Forbidden by robots.txt: <GET http://baidu.com>

robots是一个君子协议,我们就不遵守了 

 将【项目名字】\【项目名字】\settings.py里的【ROBOTSTXT_OBEY】的值改为【False】

 

 

4、 编写逻辑代码,比如获取百度首页,写入文件

 但是得到的不太对,那这里应该是遇到了反爬

 

标签:baidu,pythonProject8,pro,爬虫,lfj,scrapy,用法
From: https://www.cnblogs.com/lifengjuan/p/17693195.html

相关文章

  • swift switch case 的复杂用法
    Swift中的 switch 语句非常灵活,可以用于处理各种复杂的条件。下面是一些 switch 语句的复杂用法:匹配值和范围:你可以使用 case 子句来匹配特定的值,也可以匹配一个值范围。例如:swiftletnumber=3switchnumber{case1:print("Numberis1")case2,3,4:prin......
  • JavaScript Map 对象的用法
    JavaScript的Map对象是一种用于存储键值对的集合,其中键和值可以是任意类型的。Map对象提供了一组方法用于操作和遍历这些键值对。下面是一些常用的JavaScriptMap对象的用法:创建一个新的Map对象:varmap=newMap();添加键值对到Map对象中:map.set(key,value);获取指定键......
  • JSON.stringify和JSON.parse的用法和区别
    JSON.stringify()和JSON.parse()是JavaScript中用于处理JSON数据的方法,它们的用法和区别如下:####一:JSON.stringify()方法将JavaScript对象或值转换为JSON字符串。它接受一个参数,即要转换的对象或值。示例:varobj={name:'John',age:25};varjsonString=JSON.......
  • escape和unescape的用法
    escape()和unescape()是JavaScript中的两个函数,用于编码和解码字符串。escape()函数用于对字符串进行编码,将字符串中的特殊字符转换为十六进制转义序列。这些特殊字符包括非字母数字字符、保留字符和其他特殊字符。例如,空格字符会被转换为%20。示例:varstr="Hello,World......
  • oracle 高级用法
    Oracle数据库有许多高级用法,以下是其中一些常见的:数据库角色:Oracle中有三个重要的角色,分别是connect角色、resource角色和dba角色。Connect角色是授予最终用户的典型权利,包括修改会话、建立聚簇、建立数据库链接、建立序列、建立会话、建立同义词和建立视图等权限。Resource角色是......
  • 关于 Angular testing 开发包里 fakeAsync 测试工具的用法
    @angular/core/testing是Angular框架提供的一个测试模块,用于帮助开发者编写单元测试和集成测试。其中的fakeAsync是一个非常有用的测试工具,它允许我们编写异步代码的测试,同时在测试中模拟时间的前进,使得测试用例的执行更加可控和可预测。fakeAsync函数是一个测试辅助函数,它......
  • js json用法 转json字符串 json对象( 重点看最后)
    jsjson:JSON.parse() //转为json对象。JSON.stringify() //转为JSON字符串。举例:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jsjson举例</title></head><body><pid="demo"></p&g......
  • Scrapy深入使用_存储
    目录Scrapy深入使用-存储scrapy的深入使用学习目标:1、了解scrapy的debug信息2、了解scrapyShell3、settings.py中的设置信息3.1为什么项目中需要配置文件3.2配置文件中的变量使用方法3.3settings.py中的重点字段和含义4、pipeline管道的深入使用4.1使用终端命令行进行存储4.2......
  • Lookup函数3种职场约定俗成的用法!
    1职场实例小伙伴们大家好,今天我们来介绍一下LOOKUP函数的三种常见的职场用法:①提取各列最后一个文本;②提取各列最后一个数值;③提取各列最后一个非空单元格内容。2解题思路LOOKUP函数用于在查找范围中查询指定的查找值,并返回另一个范围中对应位置的值。此函数可以忽略空值、逻辑值和......
  • c语言学习之路--static的用法(笔记)
    1.static修饰局部变量时可以理解为将局部变量变为全局变量,如图:#include<stdio.h>voidtest(void){ inta=1; a++; printf("a的值为%d\n",a); }intmain(void){ inti=0; while(i<5){ i++; test(); } return0;}没有static时结果为a的值为2a的值为2......