抓取自己的免费服务器

写这篇文章的初衷是要为自己提供免费的科(fan)学(qiang)上网服务器,方法简单粗暴,而且行之有效.本次尝试使用py语言抓取,会shell 的请自行略过,我只是不想讨论哪个是最好的语言.

写这个的时候免费服务器已经关闭,所以用了其他图片进行替换,敬请谅解.

原理,在 https://www.cellsystech.net/docs/?抓取 二维码图片地址,二维码要进行解析,参考了 google zxing 在线二维码解析方案 ?http://zxing.org/w/decode.jspx?,解析后发现完全看不懂,发现解析后的数据是base64加密后的,遂用base64解密,得到服务器地址/端口号/加密方式等信息.

?

?

本次环境为 py 2.7,请求采用urllibs2,采用3.x的可以优先考虑requests

一、记录要抓取的地址

mdtz_doc_url ?= ?‘https://www.cellsystech.net/docs/

zxing_url ?= ?‘http://zxing.org/w/decode?u=‘

二、请求要抓取的网页源码

source_code = urllib2.urlopen(self.mdtz_doc_url).read()

?

三、获取返回的源码后进行转移,便于解析到对应的二维码地址

soup = BeautifulSoup(source_code)

for each_img_element in soup.findAll(‘img‘):

#print ‘got an img element‘, each_img_element.get(‘src‘)

self.imgUrl = ?each_img_element.get(‘src‘)

四、拿到二维码地址后进行解析 http://zxing.org/w/decode.jspx

zxing_ana_url = self.zxing_url +self.imgUrl

print zxing_ana_url

print ‘------------------------------zxing parsing---------------------------‘

parsed_code=urllib2.urlopen(zxing_ana_url).read()

?

?

五、拿到解析结果后第一步要截取字符串 前边的ss:// ?不需要

六、Base64解码

base64.decodestring(base64_code[5:])

得到解码结果:

chacha20:[email protected]:465

chacha20是加密方式

usc.cellsystech.net 是服务器地址

465 是端口号

?

NIdewq-d3+qdH 是密码

?

七、配置ss的方法就比较简单了,这里不做过多介绍.

八、完整代码实例:

import base64

import urllib2

from bs4 ?import BeautifulSoup

import time

?

class MDTZ(object):

mdtz_doc_url = ‘https://www.cellsystech.net/docs/

zxing_url = ‘http://zxing.org/w/decode?u=‘

def init(self):

#self.imgUrl = qercodeImgUrl

self.parse_code_attr = []

#self.start_ercode_spider(mdtz_doc_url)

?

?

def start_ercode_spider(self):

print ‘-------------------starting ercode_spider-----------------\n‘

try:

source_code = urllib2.urlopen(self.mdtz_doc_url).read()

soup = BeautifulSoup(source_code)

for each_img_element in soup.findAll(‘img‘):

#print ‘got an img element‘, each_img_element.get(‘src‘)

self.imgUrl = ?each_img_element.get(‘src‘)

except:

pass

def startSpider(self):

try:

self.start_ercode_spider()

#source_code = urllib2.urlopen(self.imgUrl)

zxing_ana_url = self.zxing_url +self.imgUrl

print zxing_ana_url

print ‘------------------------------zxing parsing---------------------------‘

parsed_code = urllib2.urlopen(zxing_ana_url).read()

print ‘parsed ?success \n‘

soup = BeautifulSoup(parsed_code,‘html.parser‘)

for pre_element in soup.findAll(‘pre‘):

#if pre_element.contains(‘ss://‘):

#print ‘base64 encoding code >>‘ +pre_element.text

self.parse_code_attr.append(pre_element.text)

base64_decode_code = self.parse_base64_code(self.parse_code_attr[0])

self.write_json_config_file(base64_decode_code)

self.parse_base64_decoding(base64_decode_code)

return ?base64_decode_code

except:

pass

finally:

pass

?

#parse base64

def parse_base64_code(self,base64_code):

print ‘--------------------------------base64 decoding-----------------------\n‘

print base64_code[5:],‘\n‘

return base64.decodestring(base64_code[5:])

?

?

write json code to config.json

def write_json_config_file(self,config_code):

fw = open(‘config.json‘,‘wb+‘)

fw.write(config_code)

fw.close()

?

def parse_base64_decoding(self,base64_decoding_code):

print ‘--------------------base64_decoding_code_parse---------\n‘

encoding_method = base64_decoding_code.split(‘:‘)[0]

encoding_password = base64_decoding_code[base64_decoding_code.index(‘:‘)+1:base64_decoding_code.index(‘@‘)]

encoding_server = base64_decoding_code[base64_decoding_code.index(‘@‘)+1:]

encoding_server_ip = encoding_server.split(‘:‘)[0]

encoding_server_port = encoding_server.split(‘:‘)[1]

print ‘method ‘,encoding_method

print ‘passoword ‘, encoding_password

print ‘server ‘,encoding_server_ip

print ‘port ‘,encoding_server_port

?

if name == "main":

download ...

print ‘img downloading....‘

mao = MDTZ()

spider_times = 1

runing = True

while runing:

#sys_in = raw_input(‘>>>>>enter q ?exit<<<<<\n‘)

#if sys_in == ‘q‘:

runing = False

break

print ‘spider starting at ‘,str(spider_times)

mao.startSpider()

print ‘spider done at ‘,str(spider_times),‘\n‘

#time.sleep(20)

spider_times = spider_times + 1

原文地址:https://blog.51cto.com/14473726/2439557

时间: 2024-10-26 11:34:28

抓取自己的免费服务器的相关文章

【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&nbsp条记录&nbsp--&nbsp第&nbsp2&nbsp页&nbsp--&nbsp共&nbsp3&nbsp页</td><td align="right"><a id="Orac

下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片

将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 #region 图片下载[使用流.WebRequest进行保存] 4 /// <summary> 5 /// 图片下载[使用流.WebRequest进行保存] 6 /// </summary> 7 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video

用Jpush极光推送实现实时抓取用户Log到七牛云服务器.md

##场景## 我们的app常常会出现某个特定用户的手机出现异常情况,(注意不是所有用户,特定机型特定用户)如果用友盟,那么多log你也抓不完 ,看不到log就无法解决问题. 那么问题来了,如何实现对特定某个用户实时抓取log呢,比如我就想要用户id为 **lixiaodaoaaa**这个用户的日志信息呢?(用户自己不知道我们要抓她的log,对了你可以干点邪恶的事) 发送通知给他,而接收到通知,设备可以啥都不提示,可以干点邪恶的事,不过我想想还是算了.(他的log.我们默认log都会用LogUti

抓取扑克之星免费赛玩家排行榜

function getpokerstaropenplayers() { //http://www.intellipoker.tw/leagues/Open-League/leaderboard?page=1 // 获取扑克之星开放玩家排名 $url = "http://www.intellipoker.tw/leagues/Open-League/leaderboard"; $html = file_get_html($url); if($html == false) { echo

在服务器上用Fiddler抓取HTTPS流量

转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常会设立或利用网络接口.为了调试对网络接口的使用,往往需要查看流入和流出网络接口的网络流量或数据包.“抓包工具”就是一类用于记录通过网络接口的数据的工具. 我们知道,网络协议是分层设计的,OSI模型将网络协议分为了7个层次.不同的抓包工具,可以在网络协议的不同层次上工作.常用的Wireshark就是一

盘点用Java抓取HTTP服务器和FTP服务器的网页数据或图片等数据的实用技巧

摘要 在信息时代,常常需要通过编程的方式来灵活整理各种网络数据.首先涉及到如何方便准确地抓取网络数据.下面盘点用Java程序来访问HTTP服务器以及FTP服务器的各种实用技巧.主要介绍了Java Socket.java.net.URL类.Selenuim软件包.Apache HttpClients.Apache FTPClient来和HTTP服务器以及FTP服务器通信的方法以及其优缺点. 参考资料 (1)本文参考了笔者所写的<Java网络编程核心技术详解>,2020年上半年出版. (2)Jav

C#多线程爬虫抓取免费代理IP

这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2005就2.0的类库,VS2010就使用4.0,以此类推..........然后直接创建一个控制台应用,将我下面的代码COPY替换就可以运行,下面就来讲讲我两年前做爬虫经历,当时是给一家公司做,也是用的C#,不过当时遇到一个头痛的问题就是抓的图片有病毒,然后系统挂了几次.所以抓网站图片要注意安全,虽然我这里没涉及到图片,但是还是提醒下看文章的朋友. clas

scrapy抓取免费代理IP

1.创建项目 scrapy startproject getProxy 2.创建spider文件,抓取www.proxy360.cn www.xicidaili.com两个代理网站内容 cd项目的spiders模块下执行 scrapy genspider proxy360Spider proxy360.cn scrapy genspider xiciSpider xicidaili.com scrapy shell http://www.proxy360.cn/Region/China scra

python自然语言处理1——从网络抓取数据

python自然语言处理1--从网络抓取数据 写在前面 本节学习python2.7 BeautifulSoup库从网络抽取数据的技术,检验之简而言之就是爬虫技术.网络编程是一门复杂的技术,在需要基础的地方,文中给出的链接地址,都是很好的教程,可以参考,我在这里不在重复发明轮子.本节的主旨在于: 帮助快速掌握基本爬虫技术,形成一条主线,能为自己的实验构造基础数据.掌握爬虫技术后,可以从网络抓取符合特定需求的数据供分析,这里学习的爬虫技术适用于数据挖掘.自然语言处理等需要从外部挖掘数据的学科. 1.