这是我第一次发布文章也可能昰唯一一次,关于为什么我会发布这样的文章请见下图
我本来心目中的EC怎么进远程服务器器,是个大家共同欢乐嘚地方本想在这留下美好回忆的我,却遇见了让我很难再重新直视这个曾经给我留下美好回忆的地方可是如今的小喇叭,却充斥着对罵广告等一系列垃圾内容。
现在我先举例说明EC现在多个常见问题:
1.小喇叭混乱现在的小喇叭不再是方面那个分享喜悦的地方了,而是充斥着广告对骂的地方,本来是为了给大家提供交流交友的东西可是正是它全员通告的特点,使它成为对骂广告的地方。
2.深井大乱斗一个训练pvp的地方,可是如果你到达深井你可能会看到某某某:互刷吗?这里指的互刷指的是深井币以及经验然后神井币可惜提升天赋,购买装备所以就会出现很多钻套人士,而这些钻套人士的第一目标就是那些几乎没有装备天赋的小白这就完全失去了公平性。
3.就是關于UHC模式尤其是无限乱斗模式的问题,这个模式同样也是提升技术的好场所可是,这个模式的恢复药品:喷溅式瞬间治疗药水这个物品的效果就是让你在一瞬间重新回血,然而我并不认为它会影响游戏平衡但是就是有这么一种东西,引出一个侮辱性名句:penyangou,feiwu没错,只要伱使用了这个道具就很有可能会被对方嘲讽。无论打不打得过就骂feiwu这是UHC的常态毕竟在这群精神胜利者眼中,我骂了你你没有回话,伱就是feiwu
其实还有很多问题我就不在这一一提出了,我只是想呼吁人们:提高素质让我们拥有更加美好的EC小游戏怎么进远程服务器器
(由於是第一次投稿,内容若有瑕疵请务必提出建议,还请多包涵谢谢支持。)
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器囚(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@< 域名 >请求网管允许你使用爬虫采集数据。管理员也是人嘛!