动态网页抓取(动态网页抓取抓取网页有几种方法,http请求*敏*感*词*)
优采云 发布时间: 2021-11-20 12:02动态网页抓取(动态网页抓取抓取网页有几种方法,http请求*敏*感*词*)
动态网页抓取抓取网页有几种方法,我总结过这几种方法:http请求*敏*感*词*从网页标题、网页内容全文抓取抓取文章全文抓取伪静态代理/代理池自动翻页、自动跳转自动selenium自动爬虫准备工作selenium:开源的webdriver框架,会和上面几种方法同时支持。如果你的浏览器不支持请自行购买license。
bootstrap:javascript的封装库,也可以使用,但是必须向前兼容。伪静态可以让你爬取的页面看起来像主页一样,不改变内容。如果你网站的页面上没有让浏览器渲染的js文件,那你可以使用伪静态,例如selenium的index.html,它只是浏览器页面的一种显示方式,并不改变内容。http请求:http协议非常简单,可以很容易理解。
抓取网页时,你必须理解的概念就是你要从哪个url下。有明确的url,然后你才可以去请求。请求的四种方法:get方法post方法put方法delete方法正常情况下,所有请求请求都会返回html内容。如果没有明确url,那你可以在headers上指定url(会对http协议做修改),然后参数表示请求当前页面的位置。
例如,抓取新浪博客,你可以这样指定当前页面:post://首页/content/type(‘text/post’)put://首页/content/type(‘put’)delete://首页/content/type(‘delete’)如果不支持请求身份验证和响应体(payload),对于抓取,你就会经常失败。
例如抓取新浪博客内容,你需要在请求头信息里指定你的请求是验证请求。获取请求头信息有些比较难编写,但是如果你要用ajax,那你需要这样做。正常情况下,http请求会包含请求头信息,而响应体只支持xml格式,或xmlx,或xmlt,或者json。当http请求包含响应体后,post请求会被转换为json或xml形式的。
比如,你可以用http请求来获取网站左边部分:post://首页/.content-type:application/json然后你得到html的内容,其中的值是网站左边的每个字段值。然后你把它们发送到json解析库(jsonbindings)。bindings是用来解析请求中的请求头信息。如果你需要请求一个session,你也必须将form或method字段转换为bindings,以后再依次请求。
请求头信息请求头信息包括请求的useragent(浏览器),主机名,端口号和名称。还有些仅仅提供xml格式参数或useragent列表,其他的格式请参照json。假设你发送请求到一个httpoauth的网站(不是红牛,不是张小龙微博,不是李彦宏)。请求头信息里包括第一个useragent-用户代理,最后一个是主机名。还有下面的内容,浏览器用浏览器打开。