共计 1756 个字符,预计需要花费 5 分钟才能阅读完成。
项目地址:https://github.com/gejinnvshe…
微信公众号:天字一等
爬取懒人听书平台书籍的书名、作者名、分类,后续还会增加爬取音频
爬虫用到的框架:scrapy Anaconda 是专注于数据分析的 Python 发行版本
scrapy 简单入门及实例讲解:https://www.cnblogs.com/kongz… scrapy 进阶实例:https://blog.csdn.net/z564359…
scrapy 框架知识点
1、ROBOTSTXT_OBEY = False 粗解
https://www.jianshu.com/p/19c1ea0d59c22、爬虫 -User-Agent 和代理池
https://www.cnblogs.com/sunxiuwen/p/10112057.html3、
scrapy 项目配置文件:
scrapy.cfg:爬虫项目的配置文件。
__init__.py:爬虫项目的初始化文件,用来对项目做初始化工作。
items.py:爬虫项目的数据容器文件,用来定义要获取的数据。
1、pipelines.py:爬虫项目的管道文件,用来对 items 中的数据进行进一步的加工处理。2、scrapy 的 pipeline 是一个非常重要的模块,主要作用是将 return 的 items 写入到数据库、文件等持久化模块
settings.py:爬虫项目的设置文件,包含了爬虫项目的设置信息。
middlewares.py:爬虫项目的中间件文件,4
使用 anaconda prompt 运行.py 文件,执行 scrapy crwal xx 指令时,xx 是.py 文件中给 name 赋的值
使用 anaconda prompt 运行.py 文件,执行 scrapy crwal xx 指令时,如果报错说少了 yy modules,直接输入 pip install yy 执行安装包,不用在进入对应的项目目录下
5、https://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/tutorial.html?highlight=extract
-
xpath()
: 传入 xpath 表达式,返回该表达式所对应的所有节点的 selector list 列表。 -
css()
: 传入 CSS 表达式,返回该表达式所对应的所有节点的 selector list 列表. -
extract()
: 序列化该节点为 unicode 字符串并返回 list。 -
re()
: 根据传入的正则表达式对数据进行提取,返回 unicode 字符串 list 列表。
6、elastisearch 查询语句
https://segmentfault.com/q/1010000017553309/
7、传入 xpath 表达式,返回该表达式所对应的所有节点的 selector list 列表
extract(): 返回被选择元素的 unicode 字符串
8、yield
yield 的作用 这里是在爬取完一页的信息后,我们在当前页面获取到了下一页的链接,然后通过 yield 发起请求,
# 并且将 parse 自己作为回调函数来处理下一页的响应
# https://www.jianshu.com/p/7c1a084853d8
yield Request(self.lrtsUrl + next_link, callback=self.parse, headers=headers) #获取下一页,parse 是回调函数来处理下一页的响应
9、meta scrapy 的 request 的 meta 参数是什么意思?
https://blog.csdn.net/master_ning/article/details/80558985
python 基础知识点:
class:# 创建类 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
def:# 创建类中函数
pass:pass 不做任何事情,一般用做占位语句。
if name == ‘__main__’: 的作用
https://www.cnblogs.com/kex1n/p/5975575.html
5、python range() 函数可创建一个整数列表,一般用在 for 循环中。
函数语法
range(start, stop[, step])
6、Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。
语法
len() 方法语法:
len(s)