这一节的内容属于 Hello World。
Scrapy 是专门用于爬虫的 Python 框架。
官方网站:https://scrapy.org/
可以在官方网站的页面上找到文档的地址:https://docs.scrapy.org/en/latest/
pip -h
指定安装 scrapy 的版本:
pip install scrapy=1.1.0rc3
在我的电脑上,Scrapy 是通过 conda 命令安装的,所以首先要进入 conda 对应的环境 ipykernel_py3,下面是操作步骤:
1、conda info -e
2、source activate ipykernel_py3
3、scrapy startproject douban
可以看到,scrapy startproject douban 这条命令为我们创建了一个文件夹,名字为 douban。
下面我们再使用 PyCharm 软件打开这个项目。
然后,我们在 douban/spiders 这个文件夹下,新建一个 douban.py 文件,编写代码如下:
from scrapy.contrib.spiders import CrawlSpider
class Douban(CrawlSpider): name = “douban” start_urls = [“https://movie.douban.com/top250”]
def parse(self, response): print(response.body[:500]) print(response.url)
注意:
1、name = “douban” ,决定了后面将要指定的代码 scrapy crawl douban;
2、spiders 这个文件夹的路径是:/Users/liwei/scrapy_douban/douban/douban/spiders(这个路径是我的电脑上的路径,大家意会即可)
此时,我们打开 iTerm2,走到 douban (不能再进到 douban 文件夹下),执行下面的命令:
scrapy crawl douban
(中间省略了一部分)
返回的状态码是 403 ,说明我们的网页爬取没有成功。
这是因为豆瓣这个网站监测到我们的爬虫程序的请求头中的 user-agent 是 Python 的 scrapy 爬虫。
解决的办法很简单,就是把 user-agent 改成和浏览器一致的值就可以了。
修改 USER_AGENT
修改 USER_AGENT 应该打开 settings.py 文件,在最后面添加:
USER_AGENT = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5’
此时,再执行 scrapy crawl douban 命令,就可以看到有正确的网页数据返回了。
使用 Scrapy 提供的 cmdline 运行程序
如果我们每执行一次爬虫,就要在 iTerm2 中写一遍 scrapy crawl douban,这样的方式效率不高。
因此 Scrapy 为我们提供了一个 cmdline ,这样我们就可以通过运行 Python 代码来运行 scrapy crawl douban。
代码编码如下:
from scrapy import cmdline
cmdline.execute(“scrapy crawl douban”.split())
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试