此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关

scrapy初体验

  • Scrapy
  • windows下scrapy安装
    • pip
    • pycharm setting
    • anaconda下安装
  • scrapy创建
  • 豆瓣电影评论scrapy实战
  • 代码
  • 运行情况

Scrapy

  • scrapy作为爬虫的框架可以说是方便了很多,至少不用手搓requests,从而模块化的进行爬虫开发。
  • scrapy的模块展示图如下

  • scrapy各个模块及作用如下。Spiders爬虫模块:构建起始请求并响应数据解析,主要为提取URL封装请求并且提取数据。Scheduler调度器模块:缓存请求并实现请求去重。Downloader下载器模块:发送请求, 获取响应数据,封装为Response。Item Pipeline管道模块:处理数据, 比如将数据保存在指定路径。ScrapyEngine引擎模块:作为运行过程的总指挥, 负责模块之间调度, 以及数据传递。Download Middlewares下载器中间件:在引擎和下载器之间, 可以对请求和响应数据进行处理, 比如: 实现随机代理IP, 随机User-Agent。爬虫中间件:爬虫和引擎之间,可以对请求和响应数据进行处理,比如过滤。
  • Scrapy运转流程:
    • 1)调度器从待下载链接中取出一个链接(URL);
    • 2)调度器启动爬虫模块;
    • 3)爬虫模块把URL传给下载器进行资源下载;
    • 4)提取目标数据,抽取出目标对象,则交给实体管道进行进一步的处理;比如存入数据库、文本;
    • 5)若是解析出的是链接(URL),则把URL插入到待爬取队列当中。

windows下scrapy安装

pip

pip install scrapy

pycharm setting

  • 直接进入setting
  • 如何进入intepreter
  • 搜索scrapy然后安装就好了

anaconda下安装

  • 这边先创建一个新的anaconda环境
conda create -n environment_name python=X.X
  • 创建成功后
conda activate environment
  • 然后安装scrapy
conda install scrapy

scrapy创建

  • 在对应的环境下,进入了指定目录后
scrapy startproject projectname
  • 然后进入爬虫目录
cd projectname
  • 进入后创建爬虫
scrapy genspider baidu www.baidu.com
  • 这边的baidu是爬虫类名,然后www.baidu.com是爬取目的url
  • 这个url可以随意输入,后续可以在代码中改动

豆瓣电影评论scrapy实战

  • 在对应的环境下,进入了指定目录后
scrapy startproject projectname

  • 可以看到创建成功了
  • 下一步创建爬虫

settings.py 是spdier项目的配置文件

这边我们需要改动一下robots协议并添加一下cookie请求

  • 这个

  • 还有这个
  • 和这个

代码

spider

import time
import scrapy
from bs4 import BeautifulSoup
from ..items import DoubanConmentScrapyItemclass SpiderSpider(scrapy.Spider):name = 'spider'allowed_domains = ['www.douban.com']def start_requests(self):URL = []for i in range(0,2):urls ='https://movie.douban.com/subject/3742360/comments?start={}&limit=20&status=P&sort=new_score'.format(i*20)URL.append(urls)for url in URL:time.sleep(2)yield scrapy.Request(url=url,callback=self.parse)print('@@@@@@@@@@@@@@@@@@@')def parse(self, response):r=response.textsoup = BeautifulSoup(r, 'lxml')all = soup.find_all('div', {'class': 'comment'})i=0for every in all:i=i+1data = []comment = every.find('span', {'class': 'short'}).textvote = every.find('span', {'class': 'votes vote-count'}).textinfo = every.find('span', {'class': 'comment-info'})author = info.find('a').textscore = info.find_all('span')[1]['class'][0][-2]times = info.find('span', {'class': 'comment-time'})['title']item=DoubanConmentScrapyItem()item['com_comment'] = commentitem['com_vote'] = voteitem['com_author'] = authoritem['com_score'] =scoreitem['com_times'] =timesdata.append(item)yield item

items.py

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass DoubanConmentScrapyItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()com_comment = scrapy.Field()com_vote = scrapy.Field()com_author = scrapy.Field()com_score = scrapy.Field()com_times = scrapy.Field()

pipe

import csvclass DoubanConmentScrapyPipeline(object):def process_item(self, item, spider):data=[]result=[]with open("film.csv", "a", encoding="gb18030", newline="") as csvfile:writer = csv.writer(csvfile)for key in item:data.append(item[key])result.append(data)writer.writerows(result)return item

运行情况



可以看到爬取下来的豆瓣短评被保存在了csv中


拿下

从入门到入土:python爬虫|scrapy初体验|安装教程|爬取豆瓣电影短评相关信息(昵称,内容,时间和评分)相关推荐

  1. python 爬虫实战六:用 selenium 爬取豆瓣电影

    今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析. 首先打开豆瓣电影,然后点击 分类 ,选择要爬取的特定电影 这里以国产喜剧片为例:依次点击 电影.喜剧.中国大陆 然后点击一个小的列表按键 找到我们 ...

  2. [ Python ] 爬虫类库学习之 requests,爬取豆瓣喜剧电影排行榜

    requests 文档:http://cn.python-requests.org/zh_CN/latest/ 安装:pip --timeout=100 install requests [ pyth ...

  3. 爬虫系列1:Requests+Xpath 爬取豆瓣电影TOP

    爬虫1:Requests+Xpath 爬取豆瓣电影TOP [抓取]:参考前文 爬虫系列1:https://www.cnblogs.com/yizhiamumu/p/9451093.html [分页]: ...

  4. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  5. python爬虫豆瓣电影短评_【Python爬虫】BeautifulSoup爬取豆瓣电影短评

    目的:爬取豆瓣[红海行动]电影的首页短评 步骤: 1.使用BeautifulSoup解析网页 soup = BeautifulSoup(r, 'lxml') // lxml 库解析速度快,也能解析复杂 ...

  6. python爬虫怎么爬小说_小白的python爬虫,40代码教你爬取豆瓣小说

    这篇文章写了很久了,一直没有发布: 爬虫学的差不多了,觉得这篇文章对新手实践还是有些作用的.毕竟这也是我刚学爬虫的时候练习的,爬取了比较好爬的网站,也比较经典:多余的解释不说了,代码里每一行都有注释, ...

  7. python爬取豆瓣代码_小白的python爬虫,40代码教你爬取豆瓣小说

    这篇文章写了很久了,一直没有发布: 爬虫学的差不多了,觉得这篇文章对新手实践还是有些作用的.毕竟这也是我刚学爬虫的时候练习的,爬取了比较好爬的网站,也比较经典:多余的解释不说了,代码里每一行都有注释, ...

  8. python爬虫之xpath和lxml应用—爬取豆瓣评分爬取

    python爬虫之豆瓣评分爬取 1 第一步 获取网页源码 2 第二步 获取电影信息 3 第三步 保存数据 4 综合 ''' 需求:爬取电影的名字 评分 引言 详情页的url,每一页都爬取并且把数据保存 ...

  9. Python爬虫实战01:Requests+正则表达式爬取猫眼电影

    1 目标站点的分析 2 流程框架 抓取单页内容 利用requests请求目标站点,得到单个网页HTML代码,返回结果. 正则表达式分析 根据HTML代码分析得到电影的名称.主演.上映.时间.评分.图片 ...

最新文章

  1. boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...
  2. Visual Studio安装卸载模板
  3. Redhat、CentOS进单用户模式进行维护
  4. Docker入门(一) - 仓库、容器、镜像、数据卷
  5. Spring事务处理流程和原理(动脑学院笔记)
  6. ubuntu 安装自动解决依赖冲突
  7. [css] 怎么让英文单词的首字母大写?
  8. django启动时同时使用Schedule启动其他程序
  9. 2021年泸州市高考三诊成绩查询,2020-2021学年四川省泸州市高考数学三诊试卷(理科)及答案解析...
  10. volatile 线程内存模型
  11. 兴奋:支持安卓(android)、苹果手机和平板电脑的WayOs版本
  12. 转载CentOS7 yum 安装与配置MySQL5.7
  13. c/c++内存分配详解
  14. 复制含有随机指针节点的链表
  15. 无线电监测软件java_大牛干货:软件无线电的设计和测试
  16. [渝粤教育] 中山大学 健康评估 参考 资料
  17. Java MD5签名需要使用UTF-8格式,利用MD5加密后转成大写
  18. Python silk 库 支持微信语音
  19. 腾讯云服务器怎么搭建多个ip,(技巧)利用腾讯云架设多ip实现单窗口单ip
  20. tomcat 做为大型应用的配置

热门文章

  1. 最新cuDNN 7[Linux]百度云下载[免费] 适用于CUDA 10.0
  2. stm32 CRC-16校验代码,单片机ModBUS-CRC16校验
  3. 小技巧 ----- Java算法题标准模版
  4. 剑指 Offer 58 - I. 翻转单词顺序 (双指针)
  5. leetcode937.ReorderLogFiles
  6. 敏捷开发“松结对编程”系列之七:问题集之一
  7. pay-spring-boot 开箱即用的Java支付模块,整合支付宝支付、微信支付
  8. SUSE12SP3-Mycat(4)rule.xml配置详解
  9. Android初学第87天
  10. MySQL存储引擎--MyISAM与InnoDB区别