干货教程: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收录
搜索引擎优化策略和技巧
确保链接被收录快照,确保网页快照参与权重评级
标题使用部分匹配原则,描述使用完全匹配原则
排名靠前的内部链接引导后面的链接,提高搜索展示率和有效点击
具有完全匹配、关键字粗体、与传出链接相关的内嵌锚文本的内容
链接层次扁平,目录短,合理使用网站导航分类
重要链接放在首屏,文案内容匹配长尾词而非主词
快速排名