当前位置: 首页 > article >正文

scrapy豆瓣爬虫

1.1 创建豆瓣爬虫文件夹,进入豆瓣

scrapy startproject Douban
cd Douban

1.2 修改豆瓣模型,进行后续信息设定

1.3 创建豆瓣详细爬虫分支

scrapy genspider movie douban.com

1.4 修改目标网址

1.5 开始爬取测试,结果403

import scrapy
class MovieSpider(scrapy.Spider):
    name = "movie"
    allowed_domains = ["douban.com"]
    start_urls = ["https://movie.douban.com/top250"]
    def parse(self, response):
        el_list = response.xpath("(//div[@class='info'])")
        print(len(el_list))

scrapy crawl movie

1.6 修改爬虫请求头,设置不遵守机器人协议


1.7 给scrapy设置cookie,模拟登录

COOKIES_ENABLED = False

当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie
当COOKIES_ENABLED没有注释,设置为False的时候scrapy默认使用了settings里面的cookie
当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie
这个时候scrapy已经得到了正确的值

1.8 提取豆瓣评分的标题


实际上是继承上文的xpath

1.9 运行豆瓣爬虫

import scrapy
from ..items import DoubanItem
class MovieSpider(scrapy.Spider):
    name = "movie"
    allowed_domains = ["douban.com"]
    start_urls = ["https://movie.douban.com/top250"]
    def parse(self, response):
        el_list = response.xpath("(//div[@class='info'])")
        print(len(el_list))
        for el in el_list:
            item = DoubanItem()
            item["name"] = el.xpath("./div[1]/a/span[1]/text()").extract_first()
            yield item
        url = response.xpath('//span[@class="next"]/a/@href').extract_first()
        if url != None:
            url = response.urljoin(url)
            yield scrapy.Request(
                url=url
            )

这时候已经追踪到了豆瓣的评分


http://www.kler.cn/a/415184.html

相关文章:

  • Cesium K-means自动聚合点的原理
  • YOLOv9改进,YOLOv9引入CAS-ViT(卷积加自注意力视觉变压器)中AdditiveBlock模块,二次创新RepNCSPELAN4结构
  • 某车企大模型岗位面试总结
  • 2024-11-25 二叉树的定义
  • Ubuntu 18.04 中安装 RDKit(针对 Python 2.7)
  • JDK的版本演化,JDK要收费吗?
  • 数据库原理-期末重要概念总结
  • 【亚马逊云科技】使用Amazon Lightsail搭建nginx服务
  • 自然语言能开发项目? 基于Agent的AI开发团队提示词分享
  • opencv 区域提取三种算法
  • HickWall 详解
  • llamaindex实战-ChatEngine-ReAct Agent模式
  • 剖析 SpringBoot 于夕阳红公寓管理系统架构搭建的核心作用
  • Excel小功能收集笔记-01
  • 如何将多个JS文件打包成一个JS文件?
  • [Go] slice切片详解
  • SQL:多字段混合去重后编号
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(2))
  • 网安瞭望台第4期:nuclei最新poc分享
  • 算力100问☞第30问:密集计算有什么特点?
  • 电脑中的vcruntime140_1.dll文件有问题要怎么解决?一键修复vcruntime140_1.dll
  • 【力扣】541.反转字符串2
  • 银行卡OCR 识别 API 接口如何用PHP如何调用
  • 命令行使用ssh隧道连接远程mysql
  • 认识网络安全
  • 重构代码之将单向关联转换为双向关联