1 前期工作
参考
scrapy爬取京东商城某一类商品的信息和评论(一)
scrapy爬取京东商城某一类商品的信息和评论(二)
测试
打开京东图书在console中输入$('ul.gl-warp > li').length
,结果为30,说明该页面是js动态页面输入document.getElementsByClassName('page')[0].scrollIntoView(true)
,可以完成拖拽动作注释:获取类名为 page 的元素,见【说明】span#J_resCount::text
获取id属性为J_resCount的span标签的文本
span.J_resCount::text
获取class属性为J_resCount的span标签的文本
准备
打开docker,开启splash端口sudo service docker start
sudo docker run -p 8050:8050 scrapinghub/splash
2 抓取目标确定
搜索页抓取:ID/ 折扣价/ 总评论数/ 书店名
详情页抓取:书名、出版社、作者、ISBN、出版时间、类型
(不能按照顺序来)ID / 书名 / 原价 / 折扣价 / 作者 / 出版日期 / 出版社 / 总评分 / 总评论数 / 书店名 / ISBN /类型
附录: win10 中的BUG
1 (已解决)找不到splash模块 No module named ‘splash’
描述:装好scrapy-splash后,依旧无法运行爬虫,并报错原因:没有安装splash解决办法:安装splash,打开端口,运行爬虫1. 下载splash包 `pip install scrapy-splash`2. 官网下载docker `/editions/community/docker-ce-desktop-windows`3. 利用docker 运行splash 'docker run -p 8050:8050 scrapinghub/splash'4. 验证splash是否打开,网页输入'http://localhost:8050'4. 编辑scrapy
参考:scrapy-splash爬取JS生成的动态页面
参考:Windows Docker 安装
2 (已解决)报错 ModuleNotFoundError: No module named ‘twisted.enterprise”
安装完docker、splash后,运行爬虫报错,并且原先能正常运行的爬虫也出现同样错误
怀疑1:安装包损坏,得重装scrapy
操作:重新安装scrapy后,没用
怀疑2:但运行不带from twisted.enterprise import adbapi
的爬虫没问题,而且以前这条命令能执行,但现在不能执行,怀疑twisted需要升级
操作:升级twisted ,conda upgrade twisted
,问题解决
3 (已解决)运行爬虫出现 ImportError: cannot import name ‘_win32stdio’
描述:更新splashpip install -- upgrade splash
,运行爬虫出现ImportError: cannot import name '_win32stdio'
参考:Scrapy在Python3下报错:“cannot import name ‘_win32stdio’”解决办法
4 (已解决)运行quotes爬虫,报错 ModuleNotFoundError: No module named ‘splash.downloadermiddlewares’
windows解决不了了,换linux了。。后续:时隔多日,杀回windows,用conda重装twisted
和scrapy
就解决了
如果觉得《【京东】scrapy爬虫抓取京东图书详情 评论》对你有帮助,请点赞、收藏,并留下你的观点哦!