1安装scrapy
如果使用大于3.8版本的conda直接可以用conda安装,在cmd中cd到conda文件夹下的Lib文件夹所在的目录下输入命令conda install scrapy 即可。
2创建一个scrapy项目
安装scrapy好后,记得把scrapy所在的路径添加用户环境变量Path中去,默认是conda文件夹的Scripts文件夹。添加完环境变量后在控制台输入scrapy startproject projectname(要创建的项目名称,不可以为已被使用过的标识符),这是会在用户名文件夹下创建这个项目,用Pycharm打开这个项目,如下图所示:
紧接着cd 进创建的项目文件夹,cd ProjectName,然后输入:scrapy genspider SpiderName xxx.com 比如笔者这里是quotes quotes.toscrape.com 第二参数是 网站域名,运行的时候,scrapy会自动补全。
创建好了项目和spider好后,用Pycharm打开刚创建的项目,Pycharm左下角点击terminal,输入pip install scrapy,就会安装好所需要的所有包。如果网速慢可以改源,网上搜一下阿里源啊清华源什么的,就可以很快安装好。
3.开始写代码
(1)解析页面
打开你创建的spider.py,比如笔者这里的quotes.py
看到:
类属性里有Spider的名字,网站域名和初始链接,有一个parse方法,故名思议,这个方法就是用来解析页面的。如下面一个例子,scrapy会返回一个response对象,他可以被xpath,beautifulsoup,或者是css选择器解析,这里用xpath解析。(这里的quotes.toscrape.com参考自崔庆才的《python3网络爬虫》)。
# -*- coding: utf-8 -*-
import scrapy
from tutorial.items import TutorialItem
class QuotesSpider(scrapy.Spider):
name = 'quotes'
allowed_domains = ['quotes.toscrape.com']
start_urls = ['http://quotes.toscrape.com/']
def parse(self, response):
quotes = response.xpath('//div[@class="quote"]')
for quote in quotes:
Item = TutorialItem()
Item['text'] = quote.xpath