爬虫入门到精通_框架篇13(PySpider框架基本使用及抓取TripAdvisor实战)_PySpider下载安装,项目实战

news2024/11/19 16:42:36

1 PySpider框架基本用法

PySpider框架:

  • 去重处理
  • PyQuery提取
  • 错误重试
  • 多进程处理
  • 代理简洁
  • JavaScript渲染
  • 结果监控
  • WebUI管理

安装PySpider:

pip install pyspider

报错:

在这里插入图片描述
主要是async是python3.7的保留字,pyspider库中的有些文件与之重复而出现报错,就三个文件,这三个文件的找法可以参照《windows客户端pip安装pyspider完全指南(SyntaxError:invalid syntax、async语法报错、非引用替换关键字、全局查找针对性替换、Pycharm)》,async的具体位置在pycharm中会有红色标注,替换的词可以任意选择,我就在后面加了一个下划线即“async_”;
更改:run.py中async -> async_,继续报下面的错:
在这里插入图片描述
原因分析:无法从“集合”导入名称“映射”,因为Python3.10版本以后对requests 库进行调整,collections中不能直接调用方法Mapping,MutableMapping办法就是:找到引用collections模块的__init__.py文件,调整从abc导入:
本例的路径是 D:\Program Files\Python\lib\collections_init_.py

# 将这两句
from collections import Mapping 
from collections import MutableMapping

# 替换为以下两句
from collections.abc import Mapping
from collections.abc import MutableMapping
# 即用collections.abc代替collections调用方法Mapping、MutableMapping

在这里插入图片描述
更改后,继续报错:
phantomjs not found, continue running without it.
解决:需要下载phantomjs,然后把phantomjs.exe文件复制到与python.exe文件同一目录下,继续报错:
phantomjs fetcher running on port 25555。
解决:版本太高,错误较多

更换版本:Python36

报错:
在这里插入图片描述
原因:wsgidav版本过高,
解决:执行命令
pip install wsgidav2.4.1
在这里插入图片描述
原因:werkzeug版本过高
解决:执行命令
pip install werkzeug
0.16.1
在这里插入图片描述
原因:flask版本过高
解决:执行命令
pip install flask1.0
在这里插入图片描述
查了下是因为urllib3或chardet版本过高,与支持的版本不匹配
查看对应 的__init__.py文件内的说明 :
在这里插入图片描述
解决:执行命令
pip install urllib3
1.26.0
pip install chardet==4.0
在这里插入图片描述
在这里插入图片描述

2 PhantomJS下载

在这里插入图片描述
在这里插入图片描述

3 demo示例

create:
在这里插入图片描述
效果:在这里插入图片描述

4 项目实战(抓取TripAdvisor)

爬取伦敦景点地标

在这里插入图片描述

项目说明

步骤1:创建项目
在这里插入图片描述
步骤2:输入地址
在这里插入图片描述
因为证书报错:
在这里插入图片描述
后续直接用视频里的截图。

步骤3:
点击图中位置,将所有该界面的http的链接查找(index_page())出来.
在这里插入图片描述
步骤4:
点击上述任一链接,显示tile和url。
在这里插入图片描述
步骤5:
点击web,出现浏览器上的效果
在这里插入图片描述
步骤6:
点击html,可直接查看标签元素
在这里插入图片描述
步骤7:
有些不需要的href,更改成tile查找。
在这里插入图片描述
步骤8:
更改detail_page,用选择器获取详情页信息。
在这里插入图片描述
步骤9:
存入数据库
在这里插入图片描述
效果:
在这里插入图片描述
步骤10:
点击下一页
在这里插入图片描述

更改PySpider模式

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

仿牛客项目Day02:http、调试、日志、git

http状态码 后端调试 f8:逐行执行 f7:进入语句内部 f9:执行到下一个断点 前端调试 f10:逐行调试 f11:进入语句内部 f8:执行到下一个断点 日志 按照级别开启日志 日志的测试类 比如把application里…

如何在Windows系统部署Jellyfin Server并实现公网访问内网影音文件

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

Hypermesh2019使用Include文件

1、打开模型,在Includes View查看各个零部件,可以单独显示;最后按D进入display面板显示整个模型; 2、创建新的Include文件,并将车门移入到新创建的Include File中(Originize includes); 3、创建新的Include…

qnx启动中控屏黑屏

bmetrics_service boot metrics service, 用于记录统计启动性能信息,读取/dev/bmetrics可以获取到这些信息 # use memorydump memorydump Sets the debug cookies, copies MMU info into reset_info asinfo, sets the secure monitor(TZ) dump buffer, starts tracelogger Usa…

【好书推荐-第十期】《AI绘画教程:Midjourney使用方法与技巧从入门到精通》

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号:洲与AI。 🎈 本文专栏:本文收录…

怎么会有这么多的Windows系统版本,傻傻分不清!

Win10的各个版本之间的区别主要体现在功能、适用场景和面向的用户群体上。以下是各版本之间的详细区别: Windows 10 家庭版(Windows 10 Home) 主要功能:包含Windows 10的基本功能,如全新的开始菜单、Edge浏览器、Windows Hello生物特征认证登录以及虚拟助手Cortana。此外,…

吴恩达deeplearning.ai:数据增强数据合成迁移学习

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 让我们看看为你的程序添加数据的技巧。在构建神经网络的时候,我们总是想要更多的数据,但是获取更多的数据往往是十分昂贵又缓慢的。相反地,添加数据的另一…

ssGSEA -- 学习记录

文章目录 biref统计学原理其他注意事项代码实现部分 biref 前情提要链接: https://blog.csdn.net/jiangshandaiyou/article/details/136536349 https://blog.csdn.net/jiangshandaiyou/article/details/134457515 相比起GSA,GSEA不再关注于差异基因&…

蓝色经典免费wordpress模板主题

蓝色经典配色的免费wordpress建站主题,万能的wordpress建站主题。 https://www.wpniu.com/themes/24.html

Java注解介绍

Java注解 注解介绍元注解RetentionTargetDocumentedInherited接口类测试结果 注解介绍 Java注解(Annotation)是一种元数据(Metadata)的形式,它可以被添加到Java代码中的类、方法、变量、参数等元素上,以提…

GSA、GSEA、ssGSEA、GSVA用到的统计学知识点

文章目录 概率密度函数(probability density function,PDF)分布函数(Cumulative Distribution Function,CDF)核密度估计(KDE)经验累计分布函数(Empirical Cumulative Dis…

C++ Qt开发:QFileSystemWatcher文件监视组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或…

JsonCreator注解InvalidDefinitionException报错解决

"stack_trace": "c.f.j.d.e.InvalidDefinitionException: More than one argument (#0 and left as delegating for Creator [constructor for (

【性能测试】Jmeter+InfluxDB+Grafana 搭建性能监控平台

一、背景 为什么要搭建性能监控平台? 在用 Jmeter 获取性能测试结果的时候,Jmeter自带的测试报告如下: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享;报告信息的展示比较简陋单一,不…

Nacos2.2.3之MySQL8.X持久化详细配置过程

Nacos2.2.3之MySQL8.X持久化详细配置过程 文章目录 Nacos2.2.3之MySQL8.X持久化详细配置过程1. 官网与下载1. 官网2. Naocs是什么?3. 下载 2. 安装与持久化配置1. 解压安装2. 创建数据库1. 连接数据库2. 创建nacos数据库3. 导入脚本4. 查看表 3. 持久化配置1. appli…

Jmeter事务控制器实战

在性能测试工作中,我们往往只测试业务功能相关主要接口的数据请求和返回。然而实际上用户在使用web应用时,可能会加载诸多资源:htmldom、cssdom、javaScript、ajax请求、图片等。 从打开一个页面到界面渲染完成需要一定的加载时间&#xff0…

Linux学习之线程

目录 线程概念 1.什么是线程? 2.线程的优缺点 3.线程异常 4.线程用途 线程操作 1.如何给线程传参 2.线程终止 3.获取返回值 4.分离状态 5.退出线程 线程的用户级地址空间: 线程的局部存储 线程的同步与互斥 互斥量mutex 数据不一致的主要过…

2024 AI 辅助研发的新纪年

随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下,AI辅助研发不仅…

操作系统内存管理-组织方式

目录 前言 数据单位 位(bit) 字节(byte) 组织方式 连续分配方式 非连续分配方式 段页式存储管理 虚拟内存管理 NUMA(Non-Uniform Memory Access)架构下的内存管理 逻辑地址与物理地址的映射关系 逻辑…

云计算 3月8号 (WEB服务及Apache 服务的搭建与配置——基于域名 端口 Ip多方式访问)

1、WEB服务简介 # 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 - WEB服务器一般指网站服务器,可以向浏览器等Web客户端提供网站的访问,让全世界浏览。 - WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 …