Python网络爬虫2 - 爬取新浪微博用户图片
其实,新浪微博用户图片爬虫是我学习python以来写的第一个爬虫,只不过当时懒,后来爬完Lofter后觉得有必要总结一下,所以就有了第一篇爬虫博客。现在暂时闲下来了,准备把新浪的这个也补上。 言归正传,既然选择爬新浪微博,那当然是有需求的,这也是学习的主要动力之一,没错,就是美图。sina用户多数微博都是包含图片的,而且是组图居多,单个图片的较少。 为了避免侵权,本文以本人微博litreily为例说明整个爬取过程,虽然图片较少,质量较低,但爬取方案是绝对ok的,使用时只要换个用户ID就可以了。 分析sina站点获取用户ID在爬取前,我们需要知道的是每个用户都有一个用户名,而一个用户名又对应一个唯一的整型数字ID,类似于学生的学号,本人的是2657006573。至于怎么根据用户名去获取ID,有以下两种方法: 进入待爬取用户主页,在浏览器网址栏中即可看到一串数据,那就是用户ID Ctrl-U查看待爬取用户的源码,搜索"uid,注意是双引号 其实是可以在已知用户名的情况下通过爬虫自动获取到uid的,但是我当时初学python,并没有考虑充分,所以后面的源码是以用户ID作为...
Python网络爬虫1 - 爬取网易LOFTER图片
LOFTER是网易出品的优质轻博客,灵感源于国外的tumblr,但比之更加文艺,更加本地化。本人非常喜欢LOFTER的UI设计,以及其中的优质用户和内容,似乎网易并不擅长推广,所以受众并不广泛。这都是题外话,本文主要记录作者近期学习python3并用之爬取LOFTER用户图片的过程和成果,与大家交流分享。 本文将以本人litreily博客为例说明整个爬取过程 分析LOFTER站点在爬取站点之前,首先需要分析站点的关键信息有哪些,如果给自己提问,可能会有以下问题: 用户的主页网址格式是? 用户博客链接的格式是? 每篇博客内的图片链接的格式是? 不同用户的主页模板不同,是否可以按同样方法抓取博客信息? 用户的博客数量巨大,主页以什么方式分页? 有没有归档页面方便爬取(大多数网站都有归档页面)? 当然,这些问题不是一下子就能想出来,可以在探索网页内容的过程逐步展开,并思考下一步该考虑的问题,下面针对各个问题对主页进行探索分析。 主页信息 主页: http://[username].lofter.com 从主页可以看到归档的链接,暂时不管。不同的用户,其主页所用模板不尽一致,...
两款实用的DDos攻击工具
之前为了重现某个bug,需要对网络设备进行ddos攻击测试,同时也是对设备的网络攻击防护功能进行抗压测试。临阵磨枪,google了两款攻击工具,windows平台的hyenae,以及Linux平台的hping3,在此记录一下两者的用法。 Hyenaehyenae是在Windows平台上非常好用的一款ddos攻击工具,可以完成绝大多数的攻击操作。 download https://sourceforge.net/projects/hyenae/ Features ARP-Request flooding ARP-Cache poisoning PPPoE session initiation flooding Blind PPPoE session termination ICMP-Echo flooding ICMP-Smurf attack ICMP based TCP-Connection reset TCP-SYN flooding TCP-Land attack Blind TCP-Connection reset UDP flooding DNS-Query floo...
mySQL基本语法
最近折腾vps,想要手动搭建一个LNMP环境,那必然少不了要补补课,简单学习一下mysql的基本语法。 install mySQLinstall on Centos$ sudo yum update $ sudo yum install mysql-server mysql-client $ sudo yum install mysql-devel # install sdk of mysql # /usr/include/mysql/mysql.h install on Ubuntusudo apt-get update sudo apt-get install mysql-server mysql-client sudo apt-get install libmysqlclient15-dev || sudo apt-get install libmysqlclient-dev mySQL cmdlogin$ mysql -u USERNAME -p $ mysql -u root -p mysql> \h add usermysql> CREATE USER 'u...
结构体中长度为0的字符数组
在C语言的结构体中,有一种特殊用法,在结构体的末尾放置一个长度为0的字符数组,结构体倒数第二个位置放置一个整型变量len。其典型样例如下: typedef struct dynamic_value { int flag; int len; char val[0]; }s_flv; 本文针对其特征,用法及适用场合予以简单介绍。 特征 最后的字符数组val长度为0,不占用额外的内存空间 倒数第二个元素为一整型变量,用于存储字符数组的真实长度 val实际指向的是结构体s_flv之后的内存空间 字符数组的大小可以在定义结构体变量时动态指定s_flv.len 结构体元素个数不限,样例为典型模式,其中的flag作为标签用以标识不同的数据 用法 按s_flv格式写入数据到文件 #include <stdio.h> static void write_flv(FILE *fp, int flag, char *val) { int len = 0; if(val == NULL) val = ""; ...
VPS+SS翻越GFW
购买并配置VPS在搬瓦工选择一个VPS,大概每年$19.99,使用邀请码可优惠6%,可以使用支付宝(Alipay)购买。成功购买VPS后,进入VPS的管理界面,登录账户后便可以查看服务器信息,并进行相关配置了。 安装SS服务器如果VPS选用centos系统,则可以直接在配置界面左下方选择Shadowsocks Server,一键安装就ok了,当然喜欢折腾的也可以自己用yum install下载安装和配置Shadowsocks,此不赘述。 安装SS客户端UbuntuUbuntu可以选择github中的shadowsocks/shadowsocks,或shadowsocks/shadowsocks-qt5. WindowsWindows选择shadowsocks/shadowsocks-windows,或shadowsocks/shadowsocks-qt5中的ss-qt5-v2.9.0-win64.7z。本人刚开始使用前者,无法科学上网,从log信息中发现可以将数据发送至VPS,但VPS无法解析其头部信息,故而连接失败,后来尝试网上各种方法无果,最终使用qt5版本成功。具体原因不详...
远程服务器中编译安装tmux
在工作当中,公司出于安全考虑,部署的远程Linux服务器总有一些限制(没网,Shell指令有限),而且员工作为普通用户,无法安装软件到除用户目录以外的目录。当我们需要下载安装一些常用工具时,因为没网,所以无法使用apt-get等下载指令,只能先在本地PC下载软件源码,然后传入服务器进行编译安装。本文以tmux为例说明服务器中编译安装软件的流程。 安装路径:~/lib/software/tmux Downloadtmux的下载地址 : https://github.com/tmux/tmux/releases/download/2.5/tmux-2.5.tar.gz 依赖库libevent:https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz 下载后的文件通过一定方式(scp,共享服务,...)可以传入服务器中。 Move files (optional)在服务器中执行以下指令,将文件放入~/lib文件夹。 cd mkdir l...
Telnet中使用smtp发送邮件
Telnet是远程登录服务的标准协议和主要方式,工作于TCP/IP协议族的应用层,常用于远程登录web服务器,其中便包括SMTP,POP3等邮件服务器。 这几天参考书籍《计算机网络-自顶向下方法》学习计算机网络知识,顺便尝试了如何使用Telnet登录smtp发送邮件,下面通过一个简单示例介绍具体的发送过程。 Telnet smtp.163.com 25smtp对应的端口号为25,以163邮箱为例,下面是邮件发送过程。 → ~ telnet smtp.163.com 25 Trying 220.181.12.15... Connected to smtp.163.com. Escape character is ^]. 220 163.com Anti-spam GT for Coremail System (163com[20141201]) helo 163.com 250 OK auth login 334 dXNlcm5hbWU6 MTgyNjY2MzI4NzJAMTYzLmNvbQ== 334 UGFzc3dvcmQ6 ****************...





