欢迎光临
我们一直在努力

爬虫拿不到数据?手把手教你用Python撕开反爬伪装

这个系列从毫无基础开始, 讲述怎样去编写网络爬虫, 以及在网络爬虫里容易碰到的问题, 像存在防 的举措、加密的网站情况。还有爬虫无法获取数据。以及面临登录验证这类问题时的情况, 将会伴随着针对大量网站的关于爬虫的实际操作过程来展开。

编写网络爬虫一事, 至关重要的根本目的, 在于爬取那些我们内心所渴望获取的数据, 并且借助该爬虫, 去自动实现我们期望于网站之中达成的一系列事情。

从今而后, 我将开启讲解伊始, 从根基发端, 阐释怎样借由网络爬虫达成你心之所欲之事。

先来看一段简单的代码。

import requests #导入requests包
url = 'https://www.cnblogs.com/LexMoon/'
strhtml = requests.get(url) #get方式获取网页数据
print(strhtml.text)

先是, 来引入网络请求相关的包, 接着, 定义一个字符串url即目标网页, 随后, 我们要用引入的包去请求这个网页的内容。

这儿运用的是.get(url), 此.get并非是去拿取的那个.get, 而是属于一种针对网络请求的方法。

网络请求有着诸多方式, 其中极为常见的存在让get, post占据其一, 另外像put这般的, 你基本上是很难见到的。

通过.get(那个网址)这种操作, 就是朝着那个被称作url的网页去发送get请求, 随后, 就会有一个结果返回, 而这个结果, 其实就是这次请求所对应的响应信息。

响应信息中分为响应头和响应内容。

服务器返回给你的响应头, 它体现的信息包含, 你此次访问究竟有没有成功, 返回给你的又是何种类型的数据, 此外还有诸多其他方面的信息。

响应内容中就是你获得的网页源码了。

好了,这样你就算是入门爬虫了,但是还是有很多问题。

1. 请求中 get 与 post 的差异是什么, 为何有些网页被我爬取后, 其中并没有我所期望的数据, 为何有些网站我爬取下来的内容跟我实际看到的网站内容不相同, 请求中 get 与 post 的差异是什么。

搞清楚和张贴的分歧主要在于参量的方位, 举例来说存在一个要登录使用者的站点, 在此当本人点击登录之后, 请思考账号密码应当放置于何处。

get请求最直观的体现就是请求的参数就放在了URL中。

比如说你百度这个关键字,就可以发现它的URL如下:

这里面的那个dw=, 它就是参数当中的其中之一了, 对于get请求所涉及的参数而言, 是以?作为起始的, 并且是借助&来进行分隔的。

假设在那种我们要输入密码的网站之中, 采用的是get请求方式, 难道我们的个人信息不是极易暴露出去吗, 如此一来, 便需要post请求了。

在post请求中,参数会放在请求体内。

比如说, 下面呈现的是我在登录W3C网站之际的请求, 可以见到, 其采用的是post方式。

在那个请求的下方存在着由我们发出去的登录方面的信息, 里头所包含的完全是经过加密处理之后的账号以及密码, 这些是要发送给对方的服务器从而达到检验目的的。

为什么有些网页我爬取到了,里面却没有我想要的数据?

时不时地, 我们所运用的爬虫, 有可能会将某一个网站给爬取下来, 当去查看其中的数据之际, 会发觉, 爬取下来的乃是目标网页, 然而, 里面我们期望获取的数据却未曾有。

这个问题, 大部分出现于目标数据为那些列表型网页的情况, 举例来说, 前几日班上有个同学问了我一回问题, 当时他爬取携程的航班信息, 爬取下来的网页, 除了无法得到航班相关信息之外, 其他地方均可获取。

网页地址:

如下图:

这是个颇为常见的问题, 由于他在进行.get操作时, 所获取的是我置于上方的那个URL 地址, 可虽然此网页的确是该地址, 然而其内部数据却并非这个地址。

从携程网站设计人的立场来讲, 听起来好像挺难, 加载的那部分航班列表信息兴许极为庞大, 要是直接放置在网页里, 我们用户打开网页或许会耗费很长时间, 进而觉得网页卡住了便关闭, 所以设计者在那个URL请求里仅放置了主体框架, 促使用户迅速进入网页, 而主要的航班数据是在之后才加载的, 如此一来用户就不会因等待过长时间而退出了。

究其根本而言, 怎样去实施才是着眼于用户之体验, 如此一来, 我们究竟该以何种方式去化解这个问题?

要是你曾有过前端学习的经历,那你理应清楚Ajax异步请求这回事, 倘若对此并不知晓那也并无大碍, 毕竟此刻我们所探讨的并非前端技术领域的内容。

首先, 我们要清楚, 最开始所请求的那个网页, 其中存在一段js脚本, 当这个网页得以请求到之后, 它便会去执行, 而这段脚本的目的呢, 是去请求我们所要爬取的航班信息。

这个时候, 我们能够开启浏览器的控制台, 建议选用谷歌或者火狐浏览器, 按下F进入坦克, 不对, 按下F12进入浏览器控制台, 随后进行点击。

在这里我们就可以看到这个网页中发生的所有网络请求和响应了。

在这里面我们可以找到请求航班信息的其实是这个URL。

为什么有些网站我爬下来的内容和我真实看到的网站内容不一样?

最后的那一个问题, 是为何, 有些网络站点, 我所爬取下来的内容, 跟我切实看到的网络站点内容, 并不一样呢?

这个的主要原因是,你的爬虫没有登录。

好比我们一般去浏览网页, 存在一些信息, 是要登录之后方能够去访问的, 爬虫的情况也是这样的。

这便关联到了一个相当关键紧要的概念, 我们平日里平常日常观看浏览网页是依据基于Http请求的, 而Http它是一种属于无状态的请求。

何为无状态呢? 你能够理解成它不认得人, 换种说法就是, 你的请求抵达了对方服务器之处, 对方服务器并不晓得你究竟是何人。

那么这样, 当我们进行登录操作之后, 为何能够在较长的时间跨度里, 依旧持续不停地去对这个网页获取访问权限呢?

这是由于, Http尽管是处于无状态的状况, 然而, 对方的服务器却为我们布置了身份证, 也就是。

在我们头一回踏入这个网页之际, 要是之前未曾有过访问经历, 服务器便会给予我们一个, 而后我们于这个网页上开展的任何请求操作, 都得将其放置进去, 如此这般, 服务器便能依据此来辨别我们究竟是谁了。

7

比如知乎里面就可以找到相关的。

就这类网站而言, 我们是直接于浏览器当中获取已存在的并放进代码里加以使用.get(url, =""), 还能够让爬虫去模拟登录此网站进而拿到。WwW.HoUniAoHaO.CoM/pose/23196.html
WwW.HoUniAoHaO.CoM/pose/23197.html
WwW.HoUniAoHaO.CoM/pose/23198.html
WwW.HoUniAoHaO.CoM/pose/23199.html
WwW.HoUniAoHaO.CoM/pose/23200.html
WwW.HoUniAoHaO.CoM/pose/23201.html
WwW.HoUniAoHaO.CoM/pose/23202.html
WwW.HoUniAoHaO.CoM/pose/23203.html
WwW.HoUniAoHaO.CoM/pose/23204.html
WwW.HoUniAoHaO.CoM/pose/23205.html
WwW.HoUniAoHaO.CoM/pose/23206.html
WwW.HoUniAoHaO.CoM/pose/23207.html
WwW.HoUniAoHaO.CoM/pose/23208.html
WwW.HoUniAoHaO.CoM/pose/23209.html
WwW.HoUniAoHaO.CoM/pose/23210.html
WwW.HoUniAoHaO.CoM/pose/23211.html
WwW.HoUniAoHaO.CoM/pose/23212.html
WwW.HoUniAoHaO.CoM/pose/23213.html
WwW.HoUniAoHaO.CoM/pose/23214.html
WwW.HoUniAoHaO.CoM/pose/23215.html
WwW.HoUniAoHaO.CoM/pose/23216.html
WwW.HoUniAoHaO.CoM/pose/23217.html
WwW.HoUniAoHaO.CoM/pose/23218.html
WwW.HoUniAoHaO.CoM/pose/23219.html
WwW.HoUniAoHaO.CoM/pose/23220.html
WwW.HoUniAoHaO.CoM/pose/23221.html
WwW.HoUniAoHaO.CoM/pose/23222.html
WwW.HoUniAoHaO.CoM/pose/23223.html
WwW.HoUniAoHaO.CoM/pose/23224.html
WwW.HoUniAoHaO.CoM/pose/23225.html
WwW.HoUniAoHaO.CoM/pose/23226.html
WwW.HoUniAoHaO.CoM/pose/23227.html
WwW.HoUniAoHaO.CoM/pose/23228.html
WwW.HoUniAoHaO.CoM/pose/23229.html
WwW.HoUniAoHaO.CoM/pose/23230.html
WwW.HoUniAoHaO.CoM/pose/23231.html
WwW.HoUniAoHaO.CoM/pose/23232.html
WwW.HoUniAoHaO.CoM/pose/23233.html
WwW.HoUniAoHaO.CoM/pose/23234.html
WwW.HoUniAoHaO.CoM/pose/23235.html
WwW.HoUniAoHaO.CoM/pose/23236.html
WwW.HoUniAoHaO.CoM/pose/23237.html
WwW.HoUniAoHaO.CoM/pose/23238.html
WwW.HoUniAoHaO.CoM/pose/23239.html
WwW.HoUniAoHaO.CoM/pose/23240.html
WwW.HoUniAoHaO.CoM/pose/23241.html
WwW.HoUniAoHaO.CoM/pose/23242.html
WwW.HoUniAoHaO.CoM/pose/23243.html
WwW.HoUniAoHaO.CoM/pose/23244.html
WwW.HoUniAoHaO.CoM/pose/23245.html
WwW.HoUniAoHaO.CoM/pose/23246.html
WwW.HoUniAoHaO.CoM/pose/23247.html
WwW.HoUniAoHaO.CoM/pose/23248.html
WwW.HoUniAoHaO.CoM/pose/23249.html
WwW.HoUniAoHaO.CoM/pose/23250.html
WwW.HoUniAoHaO.CoM/pose/23251.html
WwW.HoUniAoHaO.CoM/pose/23252.html
WwW.HoUniAoHaO.CoM/pose/23253.html
WwW.HoUniAoHaO.CoM/pose/23254.html
WwW.HoUniAoHaO.CoM/pose/23255.html
WwW.HoUniAoHaO.CoM/pose/23256.html
WwW.HoUniAoHaO.CoM/pose/23257.html
WwW.HoUniAoHaO.CoM/pose/23258.html
WwW.HoUniAoHaO.CoM/pose/23259.html
WwW.HoUniAoHaO.CoM/pose/23260.html
WwW.HoUniAoHaO.CoM/pose/23261.html
WwW.HoUniAoHaO.CoM/pose/23262.html
WwW.HoUniAoHaO.CoM/pose/23263.html
WwW.HoUniAoHaO.CoM/pose/23264.html
WwW.HoUniAoHaO.CoM/pose/23265.html
WwW.HoUniAoHaO.CoM/pose/23266.html
WwW.HoUniAoHaO.CoM/pose/23267.html
WwW.HoUniAoHaO.CoM/pose/23268.html
WwW.HoUniAoHaO.CoM/pose/23269.html
WwW.HoUniAoHaO.CoM/pose/23270.html
WwW.HoUniAoHaO.CoM/pose/23271.html
WwW.HoUniAoHaO.CoM/pose/23272.html
WwW.HoUniAoHaO.CoM/pose/23273.html
WwW.HoUniAoHaO.CoM/pose/23274.html
WwW.HoUniAoHaO.CoM/pose/23275.html
WwW.HoUniAoHaO.CoM/pose/23276.html
WwW.HoUniAoHaO.CoM/pose/23277.html
WwW.HoUniAoHaO.CoM/pose/23278.html
WwW.HoUniAoHaO.CoM/pose/23279.html
WwW.HoUniAoHaO.CoM/pose/23280.html
WwW.HoUniAoHaO.CoM/pose/23281.html
WwW.HoUniAoHaO.CoM/pose/23282.html
WwW.HoUniAoHaO.CoM/pose/23283.html
WwW.HoUniAoHaO.CoM/pose/23284.html
WwW.HoUniAoHaO.CoM/pose/23285.html
WwW.HoUniAoHaO.CoM/pose/23286.html
WwW.HoUniAoHaO.CoM/pose/23287.html
WwW.HoUniAoHaO.CoM/pose/23288.html
WwW.HoUniAoHaO.CoM/pose/23289.html
WwW.HoUniAoHaO.CoM/pose/23290.html
WwW.HoUniAoHaO.CoM/pose/23291.html
WwW.HoUniAoHaO.CoM/pose/23292.html
WwW.HoUniAoHaO.CoM/pose/23293.html
WwW.HoUniAoHaO.CoM/pose/23294.html
WwW.HoUniAoHaO.CoM/pose/23295.html
WwW.HoUniAoHaO.CoM/pose/23296.html
WwW.HoUniAoHaO.CoM/pose/23297.html
WwW.HoUniAoHaO.CoM/pose/23298.html
WwW.HoUniAoHaO.CoM/pose/23299.html
WwW.HoUniAoHaO.CoM/pose/23300.html
WwW.HoUniAoHaO.CoM/pose/23301.html
WwW.HoUniAoHaO.CoM/pose/23302.html
WwW.HoUniAoHaO.CoM/pose/23303.html
WwW.HoUniAoHaO.CoM/pose/23304.html
WwW.HoUniAoHaO.CoM/pose/23305.html
WwW.HoUniAoHaO.CoM/pose/23306.html
WwW.HoUniAoHaO.CoM/pose/23307.html
WwW.HoUniAoHaO.CoM/pose/23308.html
WwW.HoUniAoHaO.CoM/pose/23309.html
WwW.HoUniAoHaO.CoM/pose/23310.html
WwW.HoUniAoHaO.CoM/pose/23311.html
WwW.HoUniAoHaO.CoM/pose/23312.html
WwW.HoUniAoHaO.CoM/pose/23313.html
WwW.HoUniAoHaO.CoM/pose/23314.html
WwW.HoUniAoHaO.CoM/pose/23315.html
WwW.HoUniAoHaO.CoM/pose/23316.html
WwW.HoUniAoHaO.CoM/pose/23317.html
WwW.HoUniAoHaO.CoM/pose/23318.html
WwW.HoUniAoHaO.CoM/pose/23319.html
WwW.HoUniAoHaO.CoM/pose/23320.html
WwW.HoUniAoHaO.CoM/pose/23321.html
WwW.HoUniAoHaO.CoM/pose/23322.html
WwW.HoUniAoHaO.CoM/pose/23323.html
WwW.HoUniAoHaO.CoM/pose/23324.html
WwW.HoUniAoHaO.CoM/pose/23325.html
WwW.HoUniAoHaO.CoM/pose/23326.html
WwW.HoUniAoHaO.CoM/pose/23327.html
WwW.HoUniAoHaO.CoM/pose/23328.html
WwW.HoUniAoHaO.CoM/pose/23329.html
WwW.HoUniAoHaO.CoM/pose/23330.html
WwW.HoUniAoHaO.CoM/pose/23331.html
WwW.HoUniAoHaO.CoM/pose/23332.html
WwW.HoUniAoHaO.CoM/pose/23333.html
WwW.HoUniAoHaO.CoM/pose/23334.html
WwW.HoUniAoHaO.CoM/pose/23335.html
WwW.HoUniAoHaO.CoM/pose/23336.html
WwW.HoUniAoHaO.CoM/pose/23337.html
WwW.HoUniAoHaO.CoM/pose/23338.html
WwW.HoUniAoHaO.CoM/pose/23339.html
WwW.HoUniAoHaO.CoM/pose/23340.html
WwW.HoUniAoHaO.CoM/pose/23341.html
WwW.HoUniAoHaO.CoM/pose/23342.html
WwW.HoUniAoHaO.CoM/pose/23343.html
WwW.HoUniAoHaO.CoM/pose/23344.html
WwW.HoUniAoHaO.CoM/pose/23345.html
WwW.HoUniAoHaO.CoM/pose/23346.html
WwW.HoUniAoHaO.CoM/pose/23347.html
WwW.HoUniAoHaO.CoM/pose/23348.html
WwW.HoUniAoHaO.CoM/pose/23349.html
WwW.HoUniAoHaO.CoM/pose/23350.html
WwW.HoUniAoHaO.CoM/pose/23351.html
WwW.HoUniAoHaO.CoM/pose/23352.html
WwW.HoUniAoHaO.CoM/pose/23353.html
WwW.HoUniAoHaO.CoM/pose/23354.html
WwW.HoUniAoHaO.CoM/pose/23355.html
WwW.HoUniAoHaO.CoM/pose/23356.html
WwW.HoUniAoHaO.CoM/pose/23357.html
WwW.HoUniAoHaO.CoM/pose/23358.html
WwW.HoUniAoHaO.CoM/pose/23359.html
WwW.HoUniAoHaO.CoM/pose/23360.html
WwW.HoUniAoHaO.CoM/pose/23361.html
WwW.HoUniAoHaO.CoM/pose/23362.html
WwW.HoUniAoHaO.CoM/pose/23363.html
WwW.HoUniAoHaO.CoM/pose/23364.html
WwW.HoUniAoHaO.CoM/pose/23365.html
WwW.HoUniAoHaO.CoM/pose/23366.html
WwW.HoUniAoHaO.CoM/pose/23367.html
WwW.HoUniAoHaO.CoM/pose/23368.html
WwW.HoUniAoHaO.CoM/pose/23369.html
WwW.HoUniAoHaO.CoM/pose/23370.html
WwW.HoUniAoHaO.CoM/pose/23371.html
WwW.HoUniAoHaO.CoM/pose/23372.html
WwW.HoUniAoHaO.CoM/pose/23373.html
WwW.HoUniAoHaO.CoM/pose/23374.html
WwW.HoUniAoHaO.CoM/pose/23375.html
WwW.HoUniAoHaO.CoM/pose/23376.html
WwW.HoUniAoHaO.CoM/pose/23377.html
WwW.HoUniAoHaO.CoM/pose/23378.html
WwW.HoUniAoHaO.CoM/pose/23379.html
WwW.HoUniAoHaO.CoM/pose/23380.html
WwW.HoUniAoHaO.CoM/pose/23381.html
WwW.HoUniAoHaO.CoM/pose/23382.html
WwW.HoUniAoHaO.CoM/pose/23383.html
WwW.HoUniAoHaO.CoM/pose/23384.html
WwW.HoUniAoHaO.CoM/pose/23385.html
WwW.HoUniAoHaO.CoM/pose/23386.html
WwW.HoUniAoHaO.CoM/pose/23387.html
WwW.HoUniAoHaO.CoM/pose/23388.html
WwW.HoUniAoHaO.CoM/pose/23389.html
WwW.HoUniAoHaO.CoM/pose/23390.html
WwW.HoUniAoHaO.CoM/pose/23391.html
WwW.HoUniAoHaO.CoM/pose/23392.html
WwW.HoUniAoHaO.CoM/pose/23393.html
WwW.HoUniAoHaO.CoM/pose/23394.html
WwW.HoUniAoHaO.CoM/pose/23395.html
WwW.HoUniAoHaO.CoM/pose/23396.html
WwW.HoUniAoHaO.CoM/pose/23397.html
WwW.HoUniAoHaO.CoM/pose/23398.html
WwW.HoUniAoHaO.CoM/pose/23399.html
WwW.HoUniAoHaO.CoM/pose/23400.html
WwW.HoUniAoHaO.CoM/pose/23401.html
WwW.HoUniAoHaO.CoM/pose/23402.html
WwW.HoUniAoHaO.CoM/pose/23403.html
WwW.HoUniAoHaO.CoM/pose/23404.html
WwW.HoUniAoHaO.CoM/pose/23405.html
WwW.HoUniAoHaO.CoM/pose/23406.html
WwW.HoUniAoHaO.CoM/pose/23407.html
WwW.HoUniAoHaO.CoM/pose/23408.html
WwW.HoUniAoHaO.CoM/pose/23409.html
WwW.HoUniAoHaO.CoM/pose/23410.html
WwW.HoUniAoHaO.CoM/pose/23411.html
WwW.HoUniAoHaO.CoM/pose/23412.html
WwW.HoUniAoHaO.CoM/pose/23413.html
WwW.HoUniAoHaO.CoM/pose/23414.html
WwW.HoUniAoHaO.CoM/pose/23415.html
WwW.HoUniAoHaO.CoM/pose/23416.html
WwW.HoUniAoHaO.CoM/pose/23417.html
WwW.HoUniAoHaO.CoM/pose/23418.html
WwW.HoUniAoHaO.CoM/pose/23419.html
WwW.HoUniAoHaO.CoM/pose/23420.html
WwW.HoUniAoHaO.CoM/pose/23421.html
WwW.HoUniAoHaO.CoM/pose/23422.html
WwW.HoUniAoHaO.CoM/pose/23423.html
WwW.HoUniAoHaO.CoM/pose/23424.html
WwW.HoUniAoHaO.CoM/pose/23425.html
WwW.HoUniAoHaO.CoM/pose/23426.html
WwW.HoUniAoHaO.CoM/pose/23427.html
WwW.HoUniAoHaO.CoM/pose/23428.html
WwW.HoUniAoHaO.CoM/pose/23429.html
WwW.HoUniAoHaO.CoM/pose/23430.html
WwW.HoUniAoHaO.CoM/pose/23431.html
WwW.HoUniAoHaO.CoM/pose/23432.html
WwW.HoUniAoHaO.CoM/pose/23433.html
WwW.HoUniAoHaO.CoM/pose/23434.html
WwW.HoUniAoHaO.CoM/pose/23435.html
WwW.HoUniAoHaO.CoM/pose/23436.html
WwW.HoUniAoHaO.CoM/pose/23437.html
WwW.HoUniAoHaO.CoM/pose/23438.html
WwW.HoUniAoHaO.CoM/pose/23439.html
WwW.HoUniAoHaO.CoM/pose/23440.html
WwW.HoUniAoHaO.CoM/pose/23441.html
WwW.HoUniAoHaO.CoM/pose/23442.html
WwW.HoUniAoHaO.CoM/pose/23443.html
WwW.HoUniAoHaO.CoM/pose/23444.html
WwW.HoUniAoHaO.CoM/pose/23445.html
WwW.HoUniAoHaO.CoM/pose/23446.html
WwW.HoUniAoHaO.CoM/pose/23447.html
WwW.HoUniAoHaO.CoM/pose/23448.html
WwW.HoUniAoHaO.CoM/pose/23449.html
WwW.HoUniAoHaO.CoM/pose/23450.html
WwW.HoUniAoHaO.CoM/pose/23451.html
WwW.HoUniAoHaO.CoM/pose/23452.html
WwW.HoUniAoHaO.CoM/pose/23453.html
WwW.HoUniAoHaO.CoM/pose/23454.html
WwW.HoUniAoHaO.CoM/pose/23455.html
WwW.HoUniAoHaO.CoM/pose/23456.html
WwW.HoUniAoHaO.CoM/pose/23457.html
WwW.HoUniAoHaO.CoM/pose/23458.html
WwW.HoUniAoHaO.CoM/pose/23459.html
WwW.HoUniAoHaO.CoM/pose/23460.html
WwW.HoUniAoHaO.CoM/pose/23461.html
WwW.HoUniAoHaO.CoM/pose/23462.html
WwW.HoUniAoHaO.CoM/pose/23463.html
CD3B.MiNgChEn.PRo
9D38.MiNgChEn.PRo
04.MiNgChEn.PRo
95.MiNgChEn.PRo
806.MiNgChEn.PRo
B44.MiNgChEn.PRo
5D.MiNgChEn.PRo
3CB.MiNgChEn.PRo
C29.MiNgChEn.PRo
245B.MiNgChEn.PRo
FFCE.MiNgChEn.PRo
C5D8.MiNgChEn.PRo
ED5.MiNgChEn.PRo

赞(0)
未经允许不得转载:171主机测评 » 爬虫拿不到数据?手把手教你用Python撕开反爬伪装
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址