python爬虫--scrapy框架爬取豆瓣读书评论

两个依旧:依旧爬取豆瓣读书评论,依旧爬取东野圭吾书籍(昨天为《恶意》);两个不同,书籍不同----今天为《解忧杂货铺》,工具不同----今天使用scrapy框架。
(1)什么情况下会用到scrapy框架呢?
答曰:一般爬取大型数据的情况下,要用到scrapy框架。
一是考试和作业比较多,二是每次利用scrapy爬取数据时,总是出现返回内容为’[]‘的情况,导致陆陆续续没有收尾。今天看完了BP神经网络,忙里抽闲,把scrapy爬取豆瓣读书评论做个小总结。
(2)为什么以前我爬取数据时会出现返回内容为’[]'的情况呢?
答曰:'start_url(启动链接)‘没有修改。系统会根据你输入的主域名去设置’start_url’,然而此’start_url’并不是你要爬取数据的具体网址。
(3)创建scrapy过程
python爬虫--scrapy框架爬取豆瓣读书评论_第1张图片
(1)保证爬虫文件夹下已经创建好’douban’这个文件(手动创建)
python爬虫--scrapy框架爬取豆瓣读书评论_第2张图片
(2)scrapy startproject eyi:'scrapy startproject’为固定部分,意为产生项目,‘eyi’为创建的文件名,系统会在’douban’文件下自动创建’eyi’文件夹。
python爬虫--scrapy框架爬取豆瓣读书评论_第3张图片
(3)cd eyi
scrapy genspider spider_eyi douban.com:
根据提示输入以上内容,example----‘spider_eyi’为’.py’文档的命名,手动设置,example.com----'douban.com’为主域名,根据要爬取的网站手动设置。
(4)pycharmpython爬虫--scrapy框架爬取豆瓣读书评论_第4张图片
创建main.py文档,方便调试。
python爬虫--scrapy框架爬取豆瓣读书评论_第5张图片
main.py文档下内容:

from scrapy import cmdline
cmdline.execute('scrapy crawl spider_eyi'.split())

(5)setting.py文档里设置反爬和robots协议。

# ROBOTSTXT_OBEY = True
ROBOTSTXT_OBEY = False  #robots协议,改为False
DEFAULT_REQUEST_HEADERS = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2714.400'}  #反爬(豆瓣的反爬不严格,所以此处的作用只是展示一下反爬应该怎么写)

(6)spider_eyi.py
爬虫的主要程序(解析、获取等等)在此实现。
python爬虫--scrapy框架爬取豆瓣读书评论_第6张图片
print功能:判断是否成功进入解析器。
在这里插入图片描述
结果:成功进入
实现爬取评论程序:

import scrapy
import re
from lxml import etree
class SpiderEyiSpider(scrapy.Spider):
    name = 'spider_eyi'
    allowed_domains = ['douban.com']
    # start_urls = ['http://douban.com/']
    start_urls = ['https://book.douban.com/subject/25862578/comments/']
    def parse(self, response):
        # pass
        # print('succueed')
        response = response.text
        # (1)正则表达式
        comment = re.findall(r'(.*)',response)
        print(comment)
        # xpath
        r = etree.HTML(response)
        comments = r.xpath('//div[@class="comment"]/p/span/text()')
        print(comments)

结果:
在这里插入图片描述
欢迎评论交流

你可能感兴趣的:(爬虫)