Python3爬虫实践——QQ空间自动点赞程序(下)

    (发完上一篇博客之后,观察了一个星期发现阅读量迟迟突破不了50大关,蓝瘦香菇+心疼自己T.T,于是果然又找到了各种拖延的理由,刚才登博客的时候突然发现有人评论期待我的下篇,立马精神振奋!开始敲字。)

——————————————————————————————————————————————————————————————————————

    那么,再次发车。

    上一次我们已经实现了“点赞”,却是缺少了“自动”,这一篇,就讲解如何实现“自动“点赞程序。

①探索:在浏览器地址栏输入网址并回车、或点击刷新后,浏览器与Qzone又发生了什么交易~

     <1>与上一篇一样,先抓包。演员又是它们,我的两个小号。登录QQ空间后,打开抓包工具,刷新页面,Fiddler里哗啦啦地闪出一排数据包。然而,只有一个主角,那就是我们“刷新”操作时候发出去的数据包。

(浏览器访问空间.png)

(数据包们.png)

    <2>照例,分析包。可见,在我们刷新页面后,浏览器向user.qzone.qq.com的相对路径/3236556749使用HTTP请求中的GET方法。(GET和POST的区分百度一搜一大把,我也有点晕。只是单纯地认为GET就是向服务器发个只有headers、body为空的数据包过去,包里含有Cookie,索要/3236556749的内容。而POST则是发包含了非空headers和非空body的数据包,body中含有了该次操作的内容,服务器解读body并实现对应的操作。)

(数据包的headers内容.png)


    于是,现在目标就是用Python3的代码实现GET方法了。

代码如下:

<pre name="code" class="python">from http import client;
from urllib import parse;

headers = {'Host': 'user.qzone.qq.com',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0',
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
           'Accept-Encoding': 'gzip, deflate',
           'Cookie': '',
           'Connection': 'keep-alive',
           'Upgrade-Insecure-Requests': 1,
           'Content-Type': 'application/x-www-form-urlencoded'
           }
headers['Cookie']='*************';#(自己抓)
httpClient=client.HTTPConnection('user.qzone.qq.com') #host是user.qzone.qq.com
httpClient.request("GET","/3236556749",parse.urlencode({}),headers);


#输出获得的内容
response=httpClient.getresponse();
print(response.status);#状态,成功的话是200;常见的错误403表示权限不足,404表示页面不存在。
print(response.reason);#原因,成功的话是ok;失败的话,各种原因
html=response.read();
print(html);#获得的数据包内容

    与上一章的POST方法类似,使用的是同一个函数。只不过Host改了,method为“GET”,url固定为你的QQ号,body为空,headers仅有Host不一样。


然后,你看到了什么?

b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xb4YOo\xdb\xc8\x15?\xab\xc0~\x871\x03H$BQ\x96\xd3\xd8\x8edz\xb1Mb4@\xb6[7^\xa0mj\x08\x149&\x19S\x1c\x9a3\xb2\x1c\xc7\x06\……………(省略n长字符)……………'

    这是什么——一串byte类型的'\x1f\x8b'开头的莫名其妙的字符。当时我各种百度,各种懵逼,用了各

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值