在运用正则表达式做匹配的过程中可能会出现如:AttributeError: 'NoneType' object has no attribute 'group'的错误,这主要是由于没有匹配到元素,之后又调用了group()方法造成的。import recontent = 'hello world'result = re.match('^w.*d$', content)#这是想只提取worldpri
马锦涛
2021-01-28
原因:版本问题卸载当前版本(也可手动删除安装目录)node uninstall joi1安装所需指定版本node install joi@14.3.1
马锦涛
2021-01-28
环境搭建问题:每台服务器的系统环境各不相同,在配置Python和Scrpayd环境时,难免会遇到各种兼容性和版本冲突的问题。服务启动问题:Scrapyd服务需要手动启动,一旦目标服务器将其关闭,需要登录服务器,重新启动。
马锦涛
2021-01-28
如果在下面的项目部署中出现类似错误,则需要卸载当前Twisted的版本,安装18.9.0版(推荐)。卸载和安装Twisted都可以使用pip命令。(1)卸载Twisted。>pip uninstall twisted(2)安装Twisted。首先从网络中下载18.9.0版本的Twisted,然后命令行定位到Twisted的目录,再使用pip命令安装。>pip install Twisted-18.
马锦涛
2021-01-28
addversion.json:上传Scrapy项目或者更新项目版本到爬虫服务器daemonstatus.json:查看Scrapyd当前的服务和任务状态schedule.json:调度一个爬虫项目的运行cancel.json:取消爬虫任务listprojects.json:获取部署到Scrapyd服务上的项目列表listversions.json:获取某个项目的版本号列表listspiders.
马锦涛
2021-01-28
Scrapyd是一个部署和管理Scrapy爬虫的工具,它可以通过一系列HTTP接口实现远程部署、启动、停止和删除爬虫程序。Scrapyd还可以管理多个爬虫项目,每个项目可以上传多个版本,但只执行最新版。此外,Scrapyd还提供了一个简洁的Web页面,用于监视正在运行的爬虫进程和查看访问日志,访问地址为http://localhost:6800。
马锦涛
2021-01-28
每台主机需要手动搭建爬虫运行的环境,如Python、Scrapy和Scrapy-Redis。需要将Scrapy项目代码拷贝到每台主机并手动运行爬虫。如果项目功能发生了变更,需要更新所有主机上的代码。
马锦涛
2021-01-28
要实现分布式爬虫,就必须解决以下几个问题。共享请求队列:多个Scrapy共享同一个请求队列,从同一个队列中获取请求,避免分配重复的请求。共享指纹集合:多个Scrapy共享同一个指纹集合,实现去重功能。汇总爬虫数据:将多个Scrapy各自爬取下来的数据汇总到同一个地方。
马锦涛
2021-01-28
Scrapy还提供了图片管道ImagesPipeline用于实现图片的下载。你也可以扩展ImagesPipeline,实现自定义的图片管道功能。图片也是文件,下载图片的本质也是下载文件,ImagesPipeline继承于FilesPipeline,使用上和FilesPipeline基本一致,只是在使用的item字段和配置选项上有所差别,如下表所示。
马锦涛
2021-01-28
在Spider中,将想要下载的文件URL地址保存到一个列表中,并赋给key为file_urls的Item字段中(item[“file_urls”])。引擎将Item传入到FilesPipeline管道中。FilesPipeline获取Item后,会读取Item中key为file_urls的字段(item[“file_urls”]),再根据获得的URL地址下载文件。Item在FilesPipelin
马锦涛
2021-01-28
将免费可用的代理服务器信息保存到Redis数据库后,所有的Scrapy爬虫项目就可以使用它们了。需要注意的是,一个爬虫项目的所有请求不能委托给固定的一个代理服务器,因为目标网站依然会监测到同一IP频繁访问的异常现象。比较好的做法是每次请求时,随机指定一个代理服务器,将请求分散到多个代理服务器中。
马锦涛
2021-01-28
自行搭建代理服务器。可以购买阿里云或者腾讯云服务器,自行搭建代理服务器。这种方式的优点是可靠、稳定;缺点是资金、时间和技术成本都比较高。使用免费代理服务器。网络上有许多免费的代理服务器供大家使用,搜索“代理”就能找到不少代理服务平台,这些平台一般都会提供免费代理服务器信息。这种方式的优点是免费、省心、省力;缺点是代理服务器有效期短、不稳定、不可控。
马锦涛
2021-01-28
避免被禁封。将爬虫请求委托给多个HTTP代理服务器,能有效避免因为单一的IP地址被网站探测到进而被禁封。提高访问速度。受硬件和网络环境限制,单机爬虫的效率不会太高,使用多个代理服务器同时执行爬虫请求,能显著提高爬虫效率。突破IP封锁。基于某些原因,有很多网站是被限制访问的,如某大学教育网内部资源。这时,可以使用教育网内地址段的代理服务器来访问,如要访问某国外网站,可以换一个国外的代理服务器试试。
马锦涛
2021-01-28
HTTP代理服务器,英文全称HTTP Proxy Server。其功能就是代理网络用户去取得网络信息。形象地说,它是客户端浏览器和网站服务器之间的信息中转站。有了它,浏览器不是直接访问网站服务器获取页面,而是将请求发送给代理服务器,由代理服务器访问网站服务器并将返回的页面信息传送给浏览器。
马锦涛
2021-01-28
1、设定浏览器列表。首先需要定义各种不同类型的浏览器,统一保存于一个列表中。我们将其定义在settings.py中2、MY_USER_AGENT = [ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",\ "Mozi
马锦涛
2021-01-28
建立网络爬虫的第一原则是:所有信息都可以伪造。你可以使用非本人的邮箱发送邮件,通过命令自动化控制鼠标的行为,或者通过某个浏览器耗费网站流量来吓唬网管。但是有一件事是不能作假的,那就是你的IP地址。封杀IP地址这种行为,也许是网站的最后一步棋,不过有效。换ip避免IP地址被封杀的方法:HTTP代理。
马锦涛
2021-01-28
之前我们都是通过User-Agent将爬虫伪装成固定浏览器,但是对于警觉性高的网站,会侦测到这一反常现象,即持续访问网站的是同一种浏览器。因此,每次请求时,可以随机伪装成不同类型的浏览器。Scrapy中的中间件UserAgentMiddleware就是专门用于设置User-Agent的。
马锦涛
2021-01-28
有些网站会通过Cookie来发现爬虫的轨迹。网站会通过Cookie跟踪你的访问过程,如果发现了爬虫异常行为就会中断你的访问,比如极为快速地填写表单,或者浏览大量页面。 虽然这些行为可以通过关闭并重新连接或者改变IP地址来伪装,但是如果Cookie暴露了你的身份,再多努力也是白费。因此,如果不是特殊需要,可以禁用Cookie,这样网站就无法通过Cookie来侦测到爬虫了。Scrapy中禁止Cooki
马锦涛
2021-01-28
网站可能会对HTTP请求头的每个属性做“是否具有人性”的检查属性内容Hostwww.baidu.comConnectionKeep-AliveAccepttext/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8User-AgentMozilla/5.0 (Windows NT 10.0
马锦涛
2021-01-28