干货教程:zg手册 之 scrapy 开发(4)-- javascript 动态页面的抓取

优采云 发布时间: 2022-09-24 10:11

  干货教程:zg手册 之 scrapy 开发(4)-- javascript 动态页面的抓取

  javascript动态页面

  目前很多网站使用js脚本来处理一些页面,而这些页面的爬取对于爬虫来说是一个挑战。对于此类页面的爬取,我使用了如下方法

  分析页面(firebug/chrome调试工具等),找到ajax获取的数据源,看看能不能直接发请求获取调用浏览器引擎(webkit)获取最后的js执行页面。调用无接口依赖的浏览器Engine(无头浏览器)casperjs,phantomjs获取最后一页

  使用 webkit 抓取

  

  安装所需软件

  # Xvfb 模拟 Xwindows sudo apt-get install xvfb # 安装 python webkit包

  在下面添加和添加下载代码(添加的位置后面会解释)

  webview = webkit.WebView() webview.connect( 'load-finished', lambda v,f: gtk.main_quit() ) webview.load_uri( request.url ) gtk.main() renderedBody = str(webview.execute_script('document.documentElement.innerHTML')) # renderedBody 是执行后页面的内容

  

  请注意,我没有解释上面的代码是在哪里写的。网上很多例子都是用DownloaderMiddleware写的,有点问题

  scrapy 是一个基于twisted 的异步Web 框架。如果下载中间件被长时间阻塞,会阻塞整个异步处理过程scrapy本身的下载延迟功能,在中间件的下一层(中间件和下载器之间)生效,也就是说,如果下载中间件在此处处理流程中断,则下载间隔功能将不起作用。还有一个问题是上面的方案需要启动模拟的x-server(xvfb)

  目前的解决方案casperjs,phantomjs headless browser写一个scrapy下载处理程序,是scrapy支持的插件,不影响其他框架功能的运行。下一篇文章会讲到下载器的开发。

  原文链接:scrapy开发zg手册(4)--javascript动态页面的爬取

  干货内容:搜索引擎优化,SEO算法,SEO培训教程

  网站位置

  明确网站定位和用户定位,根据产品属性和用户搜索习惯进行关键词调研和建立。

  现场优化

  网站结构和HTML代码优化,标题,描述,关键词定义;

  图片ALT优化、快照缩略图优化、H\STRONG\FONT\P\DIV\LI标签优化

  Link A标签设置、URL优化、死链接、空链接、#number链接等。

  文字匹配和关键词设置、导航优化、目录优化、详情页优化

  异地优化

  

  百度收录主动请求码,网站Sitemap.xml索引设置

  优质外链和友情链接建设,网址指导收录投稿

  搜索体验和缩略图优化、网页快照优化、权重评级提升

  文章发帖提示

  标题醒目,准确传达文章思想,标题概括概括性强

  关键字设置是从文章的标题中提取出来的,必须根据词组提取索引关键词

  文章摘要匹配关键词,看大局,摘要一定要准确表达文章的观点

  文章图片必须是121x75的倍数,文章发布后必须提交URL收录

  

  搜索引擎优化策略和技巧

  确保链接被收录快照,确保网页快照参与权重评级

  标题使用部分匹配原则,描述使用完全匹配原则

  排名靠前的内部链接引导后面的链接,提高搜索展示率和有效点击

  具有完全匹配、关键字粗体、与传出链接相关的内嵌锚文本的内容

  链接层次扁平,目录短,合理使用网站导航分类

  重要链接放在首屏,文案内容匹配长尾词而非主词

  快速排名

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线