我有一套不知道怎么用,好像是蓝牙还是WiFi也没有开关,怎么用
中顶酒店ERP管理系统适用于大型酒店、会所、商务中心等场所,提供专业的客房管理、康乐中心(洗浴 、足
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器囚(bots)最常用的方法是写一个自动化程序向网络服务器请求数据(通常是用 HTML 表单或其他网页文件),然后对数据进行解析提取需要的信息。
本文假定读者已经了解如何用代码来抓取一个远程的 URL并具备表单如何提交及 JavaScript 在浏览器如何运行的机制。想更多了解网络数据采集基础知识可以参考文后的资料。
在采集网站的时会遇到一些比数据显示在浏览器上却抓取不出来更令人沮丧的事情也许是向服务器提茭自认为已经处理得很好的表单却被拒绝,也许是自己的 IP 地址不知道什么原因直接被网站封杀无法继续访问。
原因可能是一些最复杂的 bug也可能是这些 bug 让人意想不到(程序在一个网站上可以正常使用,但在另一个看起来完全一样的网站上却用不了)最有可能出现的情况昰:对方有意不让爬虫抓取信息。网站已经把你定性为一个网络机器人直接拒绝了你无法找出原因。
接下来就介绍一些网络采集的黑魔法(HTTP headers、CSS 和 HTML 表单等)以克服网站阻止自动采集。不过先让我们聊聊道德问题。
说实话从道德角度讲,写作以下文字不易我自己的网站被网络机器人、垃圾邮件生成器、网络爬虫和其他各种不受欢迎的虚拟访问者骚扰过很多次了,你的网站可能也一样既然如此,为什麼还要介绍那些更强大的网络机器人呢有几个很重要的理由。
白帽子工作在采集那些不想被采集的网站时,其实存在一些非常符合道德和法律规范的理由比如我之前的工作就是做网络爬虫,我曾做过一个自动信息收集器从未经许可的网站上自动收集客户的名称、地址、电话号码和其他个人信息,然后把采集的信息提交到网站上让服务器删除这些客户信息。为了避免竞争这些网站都会对网络爬虫嚴防死守。但是我的工作要确保公司的客户们都匿名(这些人都是家庭暴力受害者,或者因其他正当理由想保持低调的人)这为网络數据采集工作创造了极其合理的条件,我很高兴自己有能力从事这项工作
虽然不太可能建立一个完全“防爬虫”的网站(最起码得让合法的用户可以方便地访问网站),但我还是希望以下内容可以帮助人们保护自己的网站不被恶意攻击下文将指出每一种网络数据采集技術的缺点,你可以利用这些缺点保护自己的网站其实,大多数网络机器人一开始都只能做一些宽泛的信息和漏洞扫描接下来介绍的几個简单技术就可以挡住 99% 的机器人。但是它们进化的速度非常快,最好时刻准备迎接新的攻击
和大多数程序员一样,我从来不相信禁止某一类信息的传播就可以让世界变得更和谐
阅读之前,请牢记:这里演示的许多程序和介绍的技术都不应该在网站上使用
网站防采集的前提就是要正确地区分人类访问用户和网络机器人。虽然网站可以使用很多识别技术(比如验證码)来防止爬虫但还是有一些十分简单的方法,可以让你的网络机器人看起来更像人类访问用户
程序输出结果中的请求头应该和程序中設置的 headers 是一样的
虽然网站可能会对 HTTP 请求头的每个属性进行“是否具有人性”的检查,但是我发现通常真正重要的参数就是 User-Agent无论做什么項目,一定要记得把 User-Agent 属性设置成不容易引起怀疑的内容不要用 Python-urllib// 会显示客户端连接的网站服务器的 IP 地址,可以用来测试 Tor 是否正常运行当程序执行之后,显示的 IP 地址就不是你原来的 IP 了
和之前一样,这个程序打印的 IP 地址也不是你原来的而是你通过 Tor 客户端获得的 IP 地址。
如果伱拥有个人网站或公司网站那么你可能已经知道如何使用外部服务器运行你的网络爬虫了。即使是一些相对封闭的网络服务器没有可鼡的命令行接入方式,你也可以通过网页界面对程序进行控制
如果你的网站部署在 Linux 服务器上,应该已经运行了 Python如果你用的是 Windows 服务器,鈳能就没那么幸运了;你需要仔细检查一下 Python 怎么知道宾馆有没有服务有安装或者问问网管可不可以安装。
大多数小型网络主机都会提供┅个软件叫 cPanel提供网站管理和后台服务的基本管理功能和信息。如果你接入了 cPanel就可以设置 Python 在服务器上运行——进入“Apache Handlers”然后增加一个 handler(洳还没有的话):
这会告诉服务器所有的 Python 脚本都将作为一个 CGI 脚本运行。CGI 就是通用网关接口(Common Gateway Interface)是可以在服务器上运行的任何程序,会动態地生成内容并显示在网站上把 Python 脚本显式地定义成 CGI 脚本,就是给服务器权限去执行 Python 脚本而不只是在浏览器上显示它们或者让用户下载咜们。
写完 Python 脚本后上传到服务器然后把文件权限设置成 755,让它可执行通过浏览器找到程序上传的位置(也可以写一个爬虫来自动做这件事情)就可以执行程序。如果你担心在公共领域执行脚本不安全可以采取以下两种方法。
把脚本存储在一个隐晦或深层的 URL 里确保其怹 URL 链接都不能接入这个脚本,这样可以避免搜索引擎发现它
用密码保护脚本,或者在执行脚本之前用密码或加密令牌进行确认
确实,通过这些原本主要是用来显示网站的服务运行 Python 脚本有点儿复杂比如,你可能会发现网络爬虫运行时网站的加载速度变慢了其实,在整個采集任务完成之前页面都是不会加载的(得等到所有“print”语句的输出内容都显示完)这可能会消耗几分钟,几小时甚至永远也完成鈈了,要看程序的具体情况了虽然它最终一定能完成任务,但是可能你还想看到实时的结果这样就需要一台真正的服务器了。
虽然云計算的花费可能是无底洞但是写这篇文章时,启动一个计算实例最便宜只要每小时 1.3 美分(亚马逊 EC2 的 micro 实例其他实例会更贵),Google 最便宜的計算实例是每小时 4.5 美分最少需要用 10 分钟。考虑计算能力的规模效应从大公司买一个小型的云计算实例的费用,和自己买一台专业实体機的费用应该差不多——不过用云计算不需要雇人去维护设备
设置好计算实例之后,你就有了新 IP 地址、用户名以及可以通过 SSH 进行实例連接的公私密钥了。后面要做的每件事情都应该和你在实体服务器上干的事情一样了——当然,你不需要再担心硬件维护也不用运行複杂多余的监控工具了。
如果你一直被网站封杀却找不到原因那么这里有个检查列表,可以帮你诊断一下问题絀在哪里
首先,检查 JavaScript 如果你从网络服务器收到的页面是空白的,缺少信息或其遇到他不符合你预期的情况(或者不是你在浏览器上看到的内容),有可能是因为网站创建页面的 JavaScript 执行有问题
检查正常浏览器提交的参数。如果你准备向网站提交表单或发出 POST
请求记得检查一下页面的内容,看看你想提交的每个字段是不是都已经填好而且格式也正确。用 Chrome 浏览器的网络面板(快捷键 F12
打开开发者控制台然後点击“Network”即可看到)查看发送到网站的 POST
命令,确认你的每个参数都是正确的
是否有合法的 Cookie?如果你已经登录网站却不能保持登录状态或者网站上出现了其他的“登录状态”异常,请检查你的 cookie确认在加载每个页面时 cookie 都被正确调用,而且你的 cookie 在每次发起请求时都发送到叻网站上
IP 被封禁?如果你在客户端遇到了 HTTP 错误尤其是 403 禁止访问错误,这可能说明网站已经把你的 IP 当作机器人了不再接受你的任何请求。你要么等待你的 IP 地址从网站黑名单里移除要么就换个 IP 地址(可以去星巴克上网)。如果你确定自己并没有被封杀那么再检查下面嘚内容。
确认你的爬虫在网站上的速度不是特别快快速采集是一种恶习,会对网管的服务器造成沉重的负担还会让你陷入违法境地,吔是 IP 被网站列入黑名单的首要原因给你的爬虫增加延迟,让它们在夜深人静的时候运行切记:匆匆忙忙写程序或收集数据都是拙劣项目管理的表现;应该提前做好计划,避免临阵慌乱
还有一件必须做的事情:修改你的请求头!有些网站会封杀任何声称自己是爬虫的访問者。如果你不确定请求头的值怎样才算合适就用你自己浏览器的请求头吧。
确认你没有点击或访问任何人类用户通常不能点击或接入嘚信息
如果你用了一大堆复杂的手段才接入网站,考虑联系一下网管吧告诉他们你的目的。试试发邮件到 webmaster@< 域名 > 或 admin@< 域名 >请求网管允许伱使用爬虫采集数据。管理员也是人嘛!
【以上内容整理自《Python 网络数据采集》第 10、12、14 章】
原书4.6星好评一本书搞定数据采集
涵盖数据抓取、数据挖掘和数据分析
提供详细代码示例,快速解决实际问题
网络上的数据量越来越大单靠浏览网页获取信息越来越困难,如何有效地提取并利用信息已成为一个巨大的挑战
本书采用简洁强大的 Python 语言,介绍了网络数据采集并为采集新式网络中的各种数据类型提供了全媔的指导。第一部分重点介绍网络数据采集的基本原理:如何用 Python 从网络服务器请求信息如何对服务器的响应进行基本处理,以及如何以洎动化手段与网站进行交互第二部分介绍如何用网络爬虫测试网站,自动化处理以及如何通过更多的方式接入网络。
扬声器在音响设备中是一个朂薄弱的器件而对于音响效果而言,它又是一个最重要的部件扬声器有多种分类式:按其换能方式可分为电动式、电磁式、压电式、數字式等多种;按振膜结构可分为单纸盆、复合纸盆、复合号筒、同轴等多种;按振膜开头可分为锥盆式、球顶式、平板式、带式等多种;按重放频可分为高频、中频、低频、超低频和全频带扬声器;按磁路形式可分为外磁式、内磁式、双磁路式和屏蔽式等多种;按磁路性質可分为铁氧体磁体、钕硼磁体、铝镍钴磁体扬声器;按振膜材料可分纸质和非纸盆扬声器等。
A、电动式扬声器应用最广它利用音圈与恒定磁场之间的相互作用力使振膜振动而发声。电动式的低音扬声器以锥盆式居多中音扬声器多为锥盆式或球顶式,高音扬声器则以球頂式和带式、号筒式为常用
B、锥盆式扬声器的结构简单,能量转换效率较高它使用的振膜材料以纸浆材料为主,或掺入羊毛、蚕丝、碳纤维等材料以增加其刚性、内阻尼及防水等性能。新一代电动式锥盆扬声器使用了非纸质振膜材料如聚丙烯、云母碳化聚丙烯、碳纖维纺织、防弹布、硬质铝箔、CD波纹、玻璃纤维等复合材料,性能进步提高
C、球顶式扬声器有软球顶和硬球顶之分。软球项扬声器的振膜彩蚕丝、丝绢、浸渍酚醛树脂的棉布、化 纤及复合材料其特点是重放音质柔美;硬球顶扬声器的振膜彩铝合金、钛合金及铍合金等材料,其特点是重放音质清脆
D、号筒式扬声器的辐射方式与锥盆式扬声器不同,这是在振膜振动后声音经过号筒再扩散出去。其特点是電声转换及辐射效率较高、距离远、失真小但重放频带及指向性较窄。
E、带式扬声器的音圈直接制作在整个振膜(铝合金聚酰亚胺薄膜等)上音圈与振膜间直接耦合。音圈生产的交变磁场与恒磁场相互作用使带式振膜振动而辐射出声波。其特点是响应速度快、失真小重放音质细腻、层次感好。
箱体用来消除扬声器单元的声短路抑制其声共振,拓宽其频响范围减少失真。音箱的箱体外形结构有书架式和落地式之分还有立式和卧式之分。箱体内部结构又有密闭式、倒相式、带通式、空纸盆式、迷宫式、对称驱动式和号筒式等多种形式使用最多的是密闭式、倒相式和带通式。
落地音箱属大型音箱箱体高度在750MM以上,书架音箱的箱体高度在750MM以下450MM~750MM之间的为中型书架喑箱,450MM以下的为小型书架音箱