scrapy_splash简单爬取淘宝页面信息

article/2025/8/29 22:15:23

首先打开淘宝页面,搜索手机:
https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&clk1=04511dd93dde330d86022e9ce3a3dc46&keyword=手机&page=0
在这里插入图片描述

# 新建scrapy项目
scrapy startproject taobao
# 进入项目目录:
cd taobao
# 创建爬虫
scrapy genspider taobao_comment taobao.com

在这里插入图片描述

打开终端,运行docker:
sudo service docker start
运行splash容器:
sudo docker run -p 8050:8050 scrapinghub/splash

在这里插入图片描述在浏览器输入:http://localhost:8050
得到下面的页面:
在这里插入图片描述再来配置爬虫文件:

# settings.py# 添加SPIDER_MIDDLEWARES
SPIDER_MIDDLEWARES = {'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
# DOWNLOADER_MIDDLEWARES 中添加Splash middleware:
DOWNLOADER_MIDDLEWARES = {'scrapy_splash.SplashCookiesMiddleware': 723,'scrapy_splash.SplashMiddleware': 725,'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,'taobao.middlewares.TaobaoDownloaderMiddleware': 543,}
# 将最后几行的注释解开:
HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
SPLASH_URL = 'http://localhost:8050/'      #自己安装的docker里的splash位置
DUPEFILTER_CLASS = "scrapy_splash.SplashAwareDupeFilter"  # 添加DUPEFILTER_CLASS去重# 将robots协议改为False:
ROBOTSTXT_OBEY = False
# taobao_comment.pyimport scrapyfrom scrapy_splash import SplashRequestclass TaobaoCommenSpider(scrapy.Spider):name = 'taobao_comment'allowed_domains = ['taobao.com']def start_requests(self):script = """function main(splash, args)splash:set_user_agent("Mozilla/5.0  Chrome/69.0.3497.100 Safari/537.36")splash:go(args.url)splash:wait(5)return {html=splash:html()}end"""url = "https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&clk1=04511dd93dde330d86022e9ce3a3dc46&keyword=%E6%89%8B%E6%9C%BA&page=0"yield SplashRequest(url,self.parse,endpoint="execute",args={'lua_source': script, 'url': url})def parse(self, response):with open('taobao.html', 'w+') as f:f.write(response.text)

执行爬虫:scrapy crawl taobao_comment
发现目录中出现taobao.html,右键单击,在浏览器中运行:
在这里插入图片描述在这里插入图片描述
到此一个scrapy-splash的简单网页抓取就完成了。


http://chatgpt.dhexx.cn/article/YcN6opI2.shtml

相关文章

淘宝API 优惠券查询接口

淘宝API 优惠券查询接口 item_search_coupon - 优惠券查询 返回值说明: 返回数据: Result Object: {“item”: [ {“pic_url”: “https://img.alicdn.com/bao/uploaded/i4/4190751820/O1CN01mohpC11PJbKKu33Gj_!!4190751820.jpg”, “num_iid”: “584401368799”, “se…

UL-1973-2022 储能电池安全标准

UL1973储能电池安全标准 UL-1973版发布于2013年2月15日,,最新更新2022年版。是全球储能电池系统的安全标准,标准主要涵盖给光伏、风能、后备电源、通信基站使用的各类储能电池,并包括对储能系统的结构评估和测试评估。UL1973-2022…

淘宝API 优惠券查询

item_search_coupon - 优惠券查询 Result Object: {“item”: [ {“pic_url”: “https://img.alicdn.com/bao/uploaded/i1/260030441/O1CN01jITAtS1F81EP8GV2T_!!0-item_pic.jpg”, “num_iid”: “562341312840”, “seller_id”: “260030441”, “title”: “预售红蜻蜓商…

Python + selenium 爬取淘宝网(销量,店铺名,价格等)

import time from selenium import webdriver from lxml import etreedef Run(keywords, numPage):# 构造无头的ChromeDriveroption webdriver.ChromeOptions()option.add_argument(headless)driver webdriver.Chrome(executable_pathD:\\Project\\Pycharm\\Driver\\chromedr…

python爬虫爬取淘宝商品并保存至mongodb数据库

使用工具介绍 python3.8 selenium(请确保你已经成功安装了谷歌驱动chromedriver) mongodb数据库 mongo-compass 谷歌浏览器 分析请求链接 打开淘宝首页的链接,https://www.taobao.com/如下: 这里以商品ipad为例,在搜索…

sfjd

一、声像资料 (一)监控视频

ftp服务器和sftp服务器

首先,ftp跟sftp是一种传输协议,一种安全,一种不安全。其中经过实践发现要有相对于的服务器才能实现上传跟下载,不能混淆使用。 windows中ftp服务器的建立方法:第一种:系统自带的ftp 开启服务:…

JFFS2

文章目录 一、JFFS2介绍1、JFFS2简介2、JFFS2框架 二、JFFS2实现1、JFFS2的机制2、JFFS2数据结构1)struct jffs2_sb_info2)struct jffs2_inode_info3)struct jffs2_raw_node_ref4)struct jffs2_inode_cache5)struct jf…

SFTP协议

SFTP协议 SCP协议本身打开SSH通道时指定的是scp命令,而是用SFTP时指定的sftp。以下是一些具体的介绍,详细内容需要参考对应的RFC文件。 下面是目前整理的使用的一份: 1) 协议中数据包格式 通过安全通道传输的所有包的格式如下&…

关于标志信息ZF、OF、SF、CF的理解

带标志加法器结构 零标志ZF 零标志是根据每一位加法器的计算结果 F i F_i Fi​相或得到的,所以只有在结果的每一位都为0的时候所有位相或才能得到0的输出,但是或门上有取反符号,所以在ZF标志的输出为1时代表结果全零,反之不全为0…

CF、SF、OF、ZF标志位

没学汇编,这种题我真是做一道错一道:-( OF(overflow flag) 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出。对于无符号整数运算,OF没有意义。 对于有符号数的溢出判断方式有: 1)采用一位符号位:思想…

cgo如何调用c++库

将c代码打包成静态库,再通过cgo调用,一直链接不上。起初以为是cgo只能用gcc,而我的静态库是是用g编译的,其实不然。 cgo调用c库,只需要在cpp源代码 include 头文件的时候,加上 extern "C" 就行了…

golang cgo 使用总结

文章目录 参数传递 基本数值类型切片字符串其他类型总结参考资料 CGO 提供了 golang 和 C 语言相互调用的机制。某些第三方库可能只有 C/C 的实现,完全用纯 golang 的实现可能工程浩大,这时候 CGO 就派上用场了。可以通 CGO 在 golang 在调用 C 的接口…

CGO总结

概述 cgo作为一个强大的工具,可以让go轻松实现调用c语言的巨额遗产。。。 问题 实际开发中,发现使用go语言调用c的动态库时,经常出现传入c的字符串发生变化的现象,如下: 情况1 由a.txt变为a.txt$\n 情况2 由plai…

cgo 机制 - 从 c 调用 go

文|朱德江(GitHub ID:doujiang24) MOSN 项目核心开发者 蚂蚁集团技术专家 专注于云原生网关研发的相关工作 本文 4656 字 阅读 12 分钟 一、前言 去年刚学 go 语言的时候,写了这篇 cgo 实现机制[1] ,介绍了 cgo 的基本…

深入学习CGO

深入学习CGO 快速入门基础知识import "C" 语句#cgo语句 GO与C的类型转换CGO函数调用CGO内部机制CGO内存模型C类封装成C APICGO调用在go runtime 层面的处理CGO的静态/动态库封装以及编译链接参数CGO定位内存泄露CGO性能CGO最佳使用场景总结参考文献: 很多…

快速上手 CGO,掌握在 Go 里写 C!

大家好,最近因为各种奇怪的原因,接触到了 Go 特色之一 CGO。这方面的相关内容也相对少一些,给大家抛砖引玉,有经验的大佬欢迎补充。 图片来源于 marlin 毕竟很多跨语言调用,还是会依赖 CGO 这个特性。希望大家在真正要…

DevOps学习心得总结

流程步骤: 1、PLAN 制定计划 (牢记交付给用户的目标) 2、CODE 开始编码 (使用相同的代码,不同版本的代码存储到仓库中,借助Git等工具在需要时合并【版本控制】) 3、BUILD 构建阶段…