资讯专栏INFORMATION COLUMN

爬虫入门到精通-网页的下载

JerryZou / 2198人阅读

摘要:网页的下载本文章属于爬虫入门到精通系统教程第四讲在爬虫入门到精通第二讲中,我们了解了协议,那么我们现在使用这些协议来快速爬虫吧本文的目标当你看完本文后,你应该能爬取几乎任何的网页使用抓包抓包就是将网络传输发送与接收的数据包进行截获重发编辑转

网页的下载

本文章属于爬虫入门到精通系统教程第四讲

在爬虫入门到精通第二讲中,我们了解了HTTP协议,那么我们现在使用这些协议来快速爬虫吧

本文的目标

当你看完本文后,你应该能爬取(几乎)任何的网页

使用chrome抓包

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

第一个案列:抓取轮子哥的动态

打开轮子哥动态这个网页

打开抓包工具

点击F12打开开发者工具

点击Network(或者网络)

按F5刷新下页面(主要是让请求重发一次,这样就能抓到包了)

应该会看到如下界面

找到我们需要的请求

可以看到如下截图,里面有这么多的请求,那么到底哪一个才是我们需要的呢 ?

这边提供一个小技巧

当你要抓的包是需要按F5刷新才出来的,一般我们需要的请求都在DOC里面(整个页面有刷新)

当你要抓的包是点击按钮"加载更多"(或者拖到页面最下面会自动加载的,整个页面并没有刷新)一般我们需要的请求都在XHR里面

简单来讲就是如果整个页面没有刷新的话,那就是在XHR里面,否则在DOC里面

因为本次抓包整个页面有刷新,所以,我们需要找的请求在DOC下面,可以看到只有一个请求

验证请求是对的

有以下两种方法(基本上用1,因为比较快)

在我们要抓包的页面随便copy出几个字,在Respoinse中使用ctrl+f 查找,如果有找到,说明我们找到的是对的 (我查找的是"和微软粉丝谈")

把response中所有的内容复制到一个txt中,并改名为"#.html"(这里的#可以随便取)然后打开这个html,看看是否和我们要抓的一样

如果发现要找的不对,那你可以打开下一个请求检查下

模拟发送

点击Headers

可以看到请求的url是: https://www.zhihu.com/people/...

方法是: GET

requests headers 是(下图中框出来的地方)

所以我们的代码应该是:

import requests

# 这里的headers就是我们上图框中的headers
request_headers = {        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",   
    "Accept-Encoding":"gzip, deflate, sdch, br",
    "Accept-Language":"zh-CN,zh;q=0.8",
    "Cache-Control":"max-age=0",
    "Connection":"keep-alive",
    "Cookie":"",
    "Host":"www.zhihu.com",
    "Referer":"https://www.zhihu.com/",
    "Upgrade-Insecure-Requests":"1",
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
}
#上图中的url
url = "https://www.zhihu.com/people/excited-vczh/activities"
# 上图中的请求方法(get)
z = requests.get(url,headers=request_headers)
print z.content

这段代码简单来说就是把 我们抓包看到的用程序来实现

一个小总结

我们爬取一个网页的步骤可以分为如下:

打开要爬取的网页

打开开发者工具,并让请求重发一次(简单讲就是抓包)

找到正确的请求

用程序模拟发送

第二个案列:点赞

1.打开要爬取的网页

我们打开 "知乎 - 与世界分享你的知识、经验和见解"

我们要点赞的回答是这个

2.打开开发者工具,并让请求重发一次

打开后"点击赞一下",可以看到有好多请求

3.找到正确的请求

我们一个一个的点开请求看,发现就一个有返回值,而且这个返回值没有意义,那么怎么确定这个就是我们要找的呢?

我们可以点击Headers,看一下发送的参数

vote_up 很明显,就是点赞的意思。所以这个应该就是我们要找的。

这边说一下,右边"Headers,Preview,Response,Cookies,Timing"是什么意思

我们经常要看的有,headers 和 preview

headers 里面我们都有介绍过(请求头,返回头)

preview和response里面的内容是相同的(preview里面的内容格式化了,输出的好看一些),里面的内容是html返回值

cookies 里面是cookie的值,只不过分成了key value的形式

Timing基本用不上,所以也不介绍了(想了解的话可以自己百度...)

4.用程序模拟发送

我们把headers全部copy,

url也和上面一样

参数也是对的

请求方法是post

但是发现最终返回http code 400,这是为什么呢?

让我们留到后面讲解~

最后再次总结一下

看完本篇文章后,你应该要

能学会抓包

最后大家可以抓一下知乎登录的包哦~

小提示:当你要抓的网页是会自动跳转的话,那么你需要选中“proserve log”

意思是不要在页面重新加载后清除log(抓知乎登录的包会用到)


最后的最后,收藏的大哥们,能帮忙点个赞么~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38594.html

相关文章

  • 爬虫入门精通-网页解析(正则)

    摘要:本文章属于爬虫入门到精通系统教程第五讲在爬虫入门到精通第四讲中,我们了解了如何下载网页,这一节就是如何从下载的网页中获取我们想要的内容万能匹配文章的标题文字我们要获取的如上所示,假如我们要获取文章的标题这几个文字,那么我们应该怎么做呢我 本文章属于爬虫入门到精通系统教程第五讲 在爬虫入门到精通第四讲中,我们了解了如何下载网页,这一节就是如何从下载的网页中获取我们想要的内容 万能匹配 h...

    RiverLi 评论0 收藏0
  • 爬虫入门精通-网页解析(xpath)

    摘要:起初的提出的初衷是将其作为一个通用的介于与间的语法模型。的基本使用要使用我们需要下载,在爬虫入门到精通环境的搭建这一章也说明怎么装,如果还没有安装的话,那就去下载安装吧直接看代码实战吧。 本文章属于爬虫入门到精通系统教程第六讲 在爬虫入门到精通第五讲中,我们了解了如何用正则表达式去抓取我们想要的内容.这一章我们来学习如何更加简单的来获取我们想要的内容. xpath的解释 XPath即为...

    ispring 评论0 收藏0
  • 爬虫入门精通-开始爬虫之旅

    摘要:开始爬虫之旅本文章属于爬虫入门到精通系统教程第一讲引言我经常会看到有人在知乎上提问如何入门爬虫爬虫进阶利用爬虫技术能做到哪些很酷很有趣很有用的事情等这一些问题,我写这一系列的文章的目的就是把我的经验告诉大家。 开始爬虫之旅 本文章属于爬虫入门到精通系统教程第一讲 引言 我经常会看到有人在知乎上提问如何入门 Python 爬虫?、Python 爬虫进阶?、利用爬虫技术能做到哪些很酷很有趣...

    JayChen 评论0 收藏0
  • 爬虫入门精通-环境搭建

    摘要:环境的安装本文章属于爬虫入门到精通系统教程第二讲的安装我用的是,也用过但是电脑配置不行,比较卡安装教程在这写的蛮清楚的然后安装一个的插件就行见如下截图点击数字的地方在数字的地方输入点击右边的安装按钮包的安装配置源,不配置的话下载速度很慢在当 环境的安装 本文章属于爬虫入门到精通系统教程第二讲 IDE的安装 IDE我用的是VS code,也用过pycharm(但是电脑配置不行,比较卡) ...

    Jingbin_ 评论0 收藏0
  • 爬虫入门精通-HTTP协议讲解

    摘要:协议的讲解本文章属于爬虫入门到精通系统教程第三讲什么是协议引用自维基百科超文本传输协议英文,缩写是互联网上应用最为广泛的一种网络协议。通过或者协议请求的资源由统一资源标识符,来标识。假定其下层协议提供可靠的传输。 HTTP协议的讲解 本文章属于爬虫入门到精通系统教程第三讲 什么是HTTP协议? 引用自维基百科 超文本传输协议(英文:HyperText Transfer Protoco...

    Towers 评论0 收藏0

发表评论

0条评论

JerryZou

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<