技术标签: 爬虫 Scrapy Python爬虫 Scrapy报错 requests # Python爬虫
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。
Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度。
也就是说,你是用scrapy后就不用自行在考虑多任务(多线程、多进程、协程)等问题了,这些问题scrapy这个框架会实现帮你处理好你所需要的。同时Scrapy中有很多方便的功能,比如说连接提取器,图片下载器,自动登录等。
下图为一个scrapy爬虫框架的流程。
从上图可以看出,使用Scrapy的一个大致流程,
初看scrapy可能你会觉得这比requests不是根据复杂了吗。的确相比于requests,scrapy的学习成本更高,但学会后,使用起来会比requests要更加高效,这里的高效不仅是爬取效率上,在代码编写上同样更加高效,写更少的代码就能实现更丰富的功能。scrapy是一个爬虫框架,而requests是一个库。
pip install scrapy
,pycharm也可以使用可视化界面安装,上面的操作就不解释了,有Python基础的应该不会看不懂。如果你连基本的Python基础都没有,学习Scrapy对你来说会比较困难,建议先把Python基础学好。
Scrapy是一个依赖众多库(zope.interface、Twisted、pyOpenSSL、pywin32…)的库,安装他时会出现各式各样的问题,大部分问题是因为缺少c++环境导致的,而需要用到c++环境的库是Twisted,也就是说大部分导致我们安装失败的原因是Twisted造成的
首先你要确保你真的拥有c++环境
如果没有可以去微软官网下载
如果你已经有c++环境却还是报了当前的错误,你可以使用下列方法去尝试解决(碰到此问题大多数可能是因为使用了虚拟环境造成的,在虚拟环境中就算安装了C++环境也经常出现无法找到的情况。)
现在全局环境中安装scrapy,然后在将其移动到虚拟环境中,python会讲包放在Python安装目录\Lib\site-packages
下,全局环境中默认只有pip和setuptools两个包,我们可以现在全局环境中安装好scrapy再将其移动到虚拟环境中,虚拟环境的位置也同样在Python虚拟环境目录\Lib\site-packages
中
如果全局环境中安装scrapy还是报错,我们可以尝试下载离线的Twisted(http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted)进行安装,
安装好后的在Python环境\Scripts
目录下能看见一个scrapy.exe才算成功
尽管可以使用pip在Windows上安装Scrapy,但我们建议您安装Anaconda或Miniconda并使用conda - forge频道中的软件包 ,这样可以避免大多数安装问题。
PS:看来官方是知道pip存在的一堆问题,希望能尽快解决。
安装完上述环境后你可以先尝试在cmd中输入scrapy
如果没有报错,这证明安装成功已经可以使用了,如果没有出现此提示,请将Scrapy所在的环境(一半不出现的问题就是你安装到了虚拟环境,只需要将虚拟环境放入全局变量中即可)
我们先cd到一个存放爬虫的目录,因为执行下面的语句会自动生成一个文件夹其中携带一些配置文件
scrapy startproject 爬虫名(只支持英文和下划线)
创建好爬虫项目文件夹后我们先cd进入创建的爬虫项目,然后执行下列语句,即可生成一个爬虫目标
scrapy genspider 爬虫名 "爬取网址"
scrapy genspider demo "demo.cn"
生成的爬虫会保存在spiders中
我们使用scrapy startproject
会自动帮我们创建一些目录和文件
目录 | 作用 |
---|---|
spiders | 存放爬虫文件,其中包含爬虫的业务逻辑(爬取那些网站) |
items | 封装数据 |
middlewares | 中间件(爬虫中间件和下载中间件) |
pipelines | 管道,数据保存 |
settings | 设置文件 |
我们创建的爬虫(scrapy genspider 爬虫名 "爬取网址"
)会自动进入spiders文件夹中
如何启动爬虫,有两种方法,一直是从命令行启动
启动爬虫我们有两种方式
scrapy crawl 爬虫名
from scrapy import cmdline
cmdline.execute("scrapy crawl 爬虫名".split())
启动此项目即可启动指定的爬虫
文章浏览阅读2.6k次。音乐音频处理_ai人声分离 html源码
文章浏览阅读430次,点赞8次,收藏6次。3. **不安全的钱包:** 使用不受信任或不安全的数字货币钱包可能使您的资产易受攻击。7. **不小心接受欺诈性交易:** 小心确认您接受的交易,特别是来自陌生人或不可信任的来源的交易。2. **弱密码:** 使用弱密码或容易被猜测的密码可能让攻击者轻松破解您的账户。4. **未更新的软件:** 不及时更新您使用的数字货币钱包和相关软件可能使您容易受到已知漏洞的攻击。定期监控账户活动以及相关的通知。6. **点击恶意链接:** 点击来自未知或不受信任的链接可能导致受到网络钓鱼攻击,从而暴露您的账户信息。_usdt怎么会被盗
文章浏览阅读603次。1.1.1 chrony简介 Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确。 它由两个程序组成:chronyd和chronyc。 chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。 chrony是CentOS7.x上自带的时间同步软件..._chrony帮助手册
文章浏览阅读4k次,点赞3次,收藏7次。Centos离线安装RabbitMQ并开启MQTTDocker安装rabbitMQRabbitMQ集群搭建和测试总结_亲测Docker安装RabbitMQ集群_亲测成功rabbitmq.conf默认没有配置文件,可以手动创建: /etc/rabbitmq/rabbitmq.conf# ======================================# RabbitMQ broker section# ======================================_rabbitmq 1883
文章浏览阅读1.2k次,点赞2次,收藏8次。OpenAI GPT全模型+百度云 文心一言模型、微软Azure模型、阿里云 通义千问模型、清华智谱AI ChatGLM、科大讯飞 星火认知大模型等!OpenAI GPT全模型+百度云 文心一言模型、微软Azure模型、阿里云 通义千问模型、清华智谱AI ChatGLM、科大讯飞 星火认知大模型等!mysql数据库 这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。支持对接微信官方支付、易支付、码支付、虎皮椒支付等。_ai付费创作系统
文章浏览阅读309次。这是运行gn_build.sh之后输出的日志。_fatal: 无法递归进入子模组路径 'qemu
文章浏览阅读1.2k次。zookeeper官网zookeeper官网学习1、zookeeper有两种运行状态1、有leader模型2、无leader模型即:不可用状态官方压测:从无主模型恢复到有主模型时间在200毫秒内从这张图中可以看出一些重要的观察结果。首先,如果追随者失败并迅速恢复,那么ZooKeeper能够在失败的情况下保持高吞吐量。但也许更重要的是,领导人选举算法允许系统足够快地恢复,以防止吞吐量大幅下降。根据我们的观察,ZooKeeper只需要不到200毫秒的时间就可以选出新的领导者。_zookeeper分布式协调服务
文章浏览阅读646次。之后,让我们深入了解并创建自动化规则:当太阳落山时打开灯 我们将定义一个触发器来跟踪日落,并告诉它在太阳落山时触发。触发此事件时,将调用light.turn_on服务,无任何参数。因为我们不指定任何参数,它将打开所有的灯。 # Example configuration.yaml entr..._服务触发 light.turn_on
文章浏览阅读174次。边框的宽度您可以通过 border-width 属性为边框指定宽度。为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 0.1em;或者使用 3 个关键字之一,它们分别是 thin 、medium(默认值) 和 thick。注释:CSS 没有定义 3 个关键字的具体宽度,所以一个用户代理可能把 thin 、medium 和 thick 分别设置为等于 5px、3px 和 2px,而另一个用..._科技边框 css
文章浏览阅读354次。whisper cpp模型下载_whisperdesktop 下载
文章浏览阅读156次。1、在ubuntu环境下的多版本Python(2.7/3.6/3.8),我要指定python版本使用pip安装第三方包:sudo python3.8 -m pip install xxx2、有时候装python库不能直接去官网下安装包,因为有些会带有依赖项,所以需要连同依赖项下载到本地之后在安装(我是因为服务器缺库,而且服务器不支持联网安装,迫于无奈只能用虚拟机下载好对应版本之后再上传到服务器安装)下载安装包及依赖项:-d 后面的是指定的安装路径pip download xxx -d /home_ubuntu parameter error "digest:sha256
文章浏览阅读39次。Lin、Vesecky 和 Zebker 使用最小二乘曲线拟合技术对噪声条纹线拟合正弦函数和线性样条曲线[20],但当条纹线间距较近时,这种曲线拟合技术就会失效。这种方法难以解决的第二个原因是,如图 4.44(a)和(b)所示,孤立残差的存在将导致一条边缘线的开始(或结束)。在这样的残差附近,本应具有不同 2#-倍数的两个区域会连接在一起,没有流苏线将它们分开。图 4.43 (a) 受高斯噪声干扰的图 4.42(a) 中的相位数据。通过。