Python Scrapy框架

全局函数

创建新的爬虫文件:
Scrapy startproject 文件名

Scrapy version: 查看scrapy版本
Scrapy version -v :可以显示Scrapy依赖库的版本
Scrapy view 查看网址源代码
Scrapy shell 网址 :测试网址
在这里插入图片描述
再输入response.text拿到网页的源代码
在这里插入图片描述
Scrapy fetch 下载网页源代码
Scrapy bench 运行快速基准测试。
scrapy list 列出spider路径下的spider文件
scrapy edit 文件名字 编辑spider文件

局部函数:

新建一个爬虫
Scrapy genspider 爬虫名字 域名
运行爬虫
Scrapy crawl spider名字

Setting.py加入LOG_LEVEL = ‘WARNING’
去除日志,只显示抓取结果
LOG_FILE = './log.log’
将数据保存到log.log中

Item={}
Item[‘name’]=Response.xpath().extract()
extract():这个方法返回的是一个数组list,,里面包含了多个string,如果只有一个string,则返回[‘ABC’]这样的形式。
Item[‘name’]=Response.xpath().extract_first()
extract_first():这个方法返回的是一个string字符串,是list数组里面的第一个字符串。Print(item)

输入:tree /F
在这里插入图片描述
在这里插入图片描述

这些文件分别对应:
scrapy.cfg 项目的配置文件
tutorial/ 该项目的模块。之后您将在此加入代码。
items.py 项目中的文件
pipelines.py 项目中的文件
settings.py 项目的设置文件
spiders/ 放置 代码的目录

Scrapy框架流程图
在这里插入图片描述

Scrapy架构图:
在这里插入图片描述
Scrapy框架的工作流程:
1、首先Spiders(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduler(调度器)。
2、Scheduler(排序,入队)处理后,经ScrapyEngine,DownloaderMiddlewares(可选,主要有User_Agent, Proxy代理)交给Downloader。
3、Downloader向互联网发送请求,并接收下载响应(response)。将响应(response)经ScrapyEngine,SpiderMiddlewares(可选)交给Spiders。
4、Spiders处理response,提取数据并将数据经ScrapyEngine交给ItemPipeline保存(可以是本地,可以是数据库)。 提取url重新经ScrapyEngine交给Scheduler进行下一个循环。直到无Url请求程序停止结束

  1. 创建桌面爬虫文件夹
  2. 在cmd中输入cd 文件夹路径(拖入即可),进入文件夹内部
  3. 创建爬虫scrapy startproject 爬虫文件名(与内部修改的爬虫文件名不可重复)
  4. 根据提示cd进入文件内部,与第二步同理
  5. 现在开始创建爬虫语法是scrapy genspider 要爬的网址名 网址
    例如scrapy genspider qidian qidian.com
  6. 进入创建好的爬虫,在pycharm中打开,文件名和第五步中要爬的网址名一样
  7. 进入文件之后,首先修改start_url这个是设置第一个要爬的网址
    在这里插入图片描述
  8. 创建一个列表用response.xpath()搜索想要爬取的信息(大范围)
    在这里插入图片描述
  9. 遍历这个列表,创建一个空字典item{ } ,把爬取的信息存放到字典中进行传输
  10. 再利用xpath进行深度查找信息(小范围),例如小说名字,作者
    在这里插入图片描述
    格式为:字典名item[要爬的字段名]=遍历列表x.xpath(接着上面的xpath写即可).extract_first()只取目标结果的第一个内容
    图中对小说简介进行了修改去除了两端空格,替换了\r为空
    最后使用yield 把数据传给了文件item,直接换成print输出也可
    传给item是为了保存数据,print在爬虫文件中不能保存
  11. 在管道文件中命名变量,爬取几个数据创建几个变量
    在这里插入图片描述
  12. 在pipeline中进行数据保存操作,with open打开文件
    在这里插入图片描述
    with open as 的基本语法参考:
    在这里插入图片描述
    使用with语句的优势:

在这里插入图片描述
13. 在setting中进行数据设置
在这里插入图片描述
在这里插入图片描述
在设置中打开item_pipelines(原来是注释的)才能使用item和pipeline
14. 前面的是只爬到第一页的数据,现在开始爬取所有数据,有两种方法
在这里插入图片描述
方法一:利用range区间获取下一页的网址:通过分析每一页的网址得出网址的不同之处让后通过%s赋值修改(弊端找不到总页数)
方法二:利用xpath找到总页数,或者是下一页的url
在这里插入图片描述
检查元素
在这里插入图片描述
检查网址是否完整,不完整的进行拼接(拼接时必须是字符串格式)
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值