Python 使用 http 库(如 requests 等),能否获取像 socket 的完整 html 响应包

2019-10-09 09:48:20 +08:00
 akmonde

RT,我这边原先使用的 socket 去获取的完整响应包,包括 header 的那种,这样方便复现数据包。 现在有其他需求需要直接使用 http 库,比如 requests 或者 urllib2 之类的,不知道能否获取像 socket 这样的效果。 这样方便和以前的数据处理机制做兼容,因为想要改的话,代码量是比较多的。 原先的 socket 发送完整 http 包,可获得类似下面的返回( header 和 body 是在一块的),我昨天试了好几个库好像都不能模拟获取 socket 这种返回方式:

HTTP/1.1 200
Server: ADSSERVER/45863
Date: Fri, 13 Oct 2017 06:48:23 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Location: https://sec.douban.com/b?r=https%3A%2F%2Fwww.douban.com%2Fsubject%2F27076001%2F
Strict-Transport-Security: max-age=15552000;
Set-Cookie: __ads_session=uY8l3pLW/AjCKJ8Y4wA=; domain=.douban.com; path=/
X-Powered-By-ADS: uni-jnads-1-02

<html>
#这里是完整的 html resp 内容
...
</html>

求大腿指教,有没有办法,让我获取像 socket 的完整 html 响应包?

5491 次点击
所在节点    Python
22 条回复
walleL
2019-10-10 15:05:56 +08:00
@akmonde

> 原本是分析流量得到的完整的 http 响应包的

你分析的流量来自哪里呢?是如何抓取的呢?
我的理解是之前你直接分析流量得到 http 包,现在需要自已发起 http 请求来生成流量。
这样的话是不是可以分析流量的程序不变,抓取方案也不变,只是用另一个程序来发起 http 请求产生流量就行了?
akmonde
2019-10-10 17:09:30 +08:00
@walleL 分析的流量原来是用 burpsuite 抓的包,做代理获取的完整响应包,是需要用另一个程序或者脚本发起请求,但发起二次请求已经不是抓取了,是直接获取 http 返回包,所以获取的内容形式跟原来用代理工具抓到的包是不太一样的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/607316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX