怎么知道爬取网站爬取的请求方式

最粗暴的方法是使用selenium+phantomjs无界面浏览器这两者的结合其实就是直接操作浏览器,可以获取JavaScript渲染后的页面数据

这两者结合使用的缺点:

由于是无界面浏览器,采用此方案效率极低如果大批量抓取不推荐。

对于异步请求并且数据在源码中并不存在的同时也就无法抓取到的数据

Selenium是一个用于Web应用的功能自动化測试工具,Selenium 直接运行在浏览器中就像真正的用户在操作一样。

由于这个性质Selenium也是一个强大的网络数据采集工具,其可以让浏览器自动加载页面获取需要的数据,甚至页面截图或者是判断网站爬取上某些动作是否发生。

Selenium自己不带浏览器需要配合第三方浏览器来使用。支持的浏览器有Chrome、Firefox、IE、Phantomjs等如果使用Chrome、FireFox或IE,我们可以看得到一个浏览器的窗口被打开、打开网站爬取、然后执行代码中的操作因为selenium+Firefox或鍺Chrome太慢了,所以我们选用selenium+PhantomJS

Phantomjs是一个“无头”浏览器,也就是没有界面的浏览器但是功能与普通的浏览器无异。是一个基于webkit的没有界面的瀏览器也就是它可以像浏览器解析网页,功能非常强大

  urllib是Python自带的一个用于爬虫的库其主要作用就是可以通过代码模拟浏览器发送请求。其常被用到的子模块在Python3中的为/' 9 #通过urlopen函数向指定的url发起请求返回响应对象 #处理url中存茬的非ASCII数据值 #将带有非ASCII的数据封装到字典中,url中非ASCII的数据往往都是'?'后面键值形式的请求参数 #使用parse子模块中的urlencode函数将封装好的字典中存在的非ASCII的数值进行ASCII编码 #处理url中存在的非ASCII数据值 #将带有非ASCII的数据封装到字典中url中非ASCII的数据往往都是'?'后面键值形式的请求参数 #使用parse子模块中的urlencode函數将封装好的字典中存在的非ASCII的数值进行ASCII编码 #将编码后的数据和url进行整合拼接成一个完整可用的url #将浏览器的UA数据获取,封装到一个字典中该UA值可以通过抓包工具或者浏览器自带的开发者工具中获取某请求,从中获取UA的值 #参数:url为请求的urlheaders为UA的值。data为post请求的请求参数(后面講) #发送我们自定义的请求(该请求的UA已经进行了伪装)

我要回帖

更多关于 网站爬取 的文章

 

随机推荐