安装请查看: Scrapy 官网
PipeLine
- 整体架构
- xpath/ css 筛选
- 爱之初体验
架构
看不懂?没关系,看文件结构
tutorial/ # project's Python module, you'll import your code from here
__init__.py
items.py # project items definition file
middlewares.py # project middlewares file
pipelines.py # project pipelines file
settings.py # project settings file
spiders/ # a directory where you'll later put your spiders
__init__.py
(这里有个初步概念就好,一步一步体会)
Xpath / css 使用
- 楼主由于并没有 css 的经验,所以直接使用xpath , 思路都是一样的,原理跟杨宗纬的洋葱一样,一层一层拨开它的心,就得到想要的内容啦。
- 这里要介绍一个scrapy 的神器,安装scrapy 之后,命令行输入 scrapy shell url ,可以直接解析网页内容,检查自己的xpath 还有css 内容是否正确
- 具体怎样使用这两个方法,各种博客太多了,就不赘述了,总之,一层一层拨开它的心
爱之初体验
命令端输入
$ scrapy startproject qqnews
>> New Scrapy project 'qqnews', using template directory '/home/anaconda3/lib/python3.6/site-packages/scrapy/templates/project', created in:/yifwork/newss/qqnews
You can start your first spider with:
cd qqnews
scrapy genspider example example.com
$ cd qqnews
$ scrapy genspider newsqq news.qq.com( scrapy genspider 项目名称 域名)
>> Created spider 'newsqq' using template 'basic' in module:
qqnews.spiders.newsqq
此时浏览目录,打开pycharm ,就可以看到,结构已经构建出来了
Scrapy in Pycharm
对于我们这样的菜鸟级码农,调试代码都要在IDE中,所以有必要在pycharm 中建立一个脚本,来作为debug 的入口。如图:
注意:
- 脚本一定要放在与项目目录下一级,比如上图,项目名为 ‘qqnews’ ,main.py 就要放在qqnews 的下一层,原理是模拟了在命令行运行 scrapy , execute 中为命令行执行scrapy 的命令。
来,我们看看网页
下面右侧图怎么出来的呢?进入浏览器,F12
一进来就看到大幂幂,好了,我要这条八卦新闻。
楼楼的习惯是打开 scrapy shell 拨开乌云见明日之后再把规则写入程序,一次写入,终身不改(咳咳,可能)
但是会发现,页面解析出来的结果,根本不是我们所看到的这样,查看网页源码
才发现,所有的内容,全部是JS加载出来,还没学会走,就要爬山,确实过分。这里卖个关子,下次开始,从简单的静态页面入手,一步一步来学习。