python抓取动态网页(如何判断一个链接下的文章是不是优质需要一个很复杂)
优采云 发布时间: 2021-10-15 08:30python抓取动态网页(如何判断一个链接下的文章是不是优质需要一个很复杂)
我一直想做一个平台,可以帮我过滤掉高质量的文章和博客。我把它命名为Moven。. 其实施过程分为三个阶段:
1. Downloader:下载指定的url,将获取到的内容传递给Analyser——这是最简单的启动方式
2. 分析器:使用正则表达式或者XPath或者BeautifulSoup/lxml对接收到的内容进行过滤和简化——这部分不是太难
3.智能爬虫:爬取高质量的文章链接——这部分是最难的:
基于Scrapy Framework可以快速搭建爬虫
但是判断一个链接下的文章是否优质需要一个非常复杂的算法
最近开始做Downloader和Analyser:我最近搭建了一个l2z的故事,还有一个Z Life和Z Life@Sina以及她的博客作为Downloader和Analyser的练习。我写这个东西是为了监控上面的。四个站点并将它们的内容同步到此站点:
应用程序的特点
除了顶部的黑色导航栏和右侧的关于本站部分外,本站所有其他内容均自动从其他站点获取
原则上,你可以在这个东西上添加任何博客或网站地址。. . 当然因为这是L2Z Story..所以里面只有收录四个站点
特点是:只要站主不停止更新,这东西就会一直存在——这就是优采云的力量
值得一提的是,Content菜单是在客户端使用JavaScript自动生成的——这样可以节省服务器上的资源消耗
这里我们使用html全页抓取,所以对于那些feed没有全文输出的网站,这个app可以抓取它想要隐藏的文字
因为程序会自动跳转到一个没有全文输出的页面去抓取文章的所有列表、作者信息、更新时间以及文章的全文,所以加载时间会比较长。. 所以打开的时候请耐心等待。. . 数据存储部分将在下一步中添加,因此会很快。.
技术准备
前端:
1. CSS 信奉简单原则。Twitter 的 bootstrap.css 满足了我的大部分需求。我真的很喜欢它的网格系统。
2. 在 Javascript 上,我当然选择了 jQuery。自从我在我的第一个小项目中开始使用 jQuery 以来,我就爱上了它。动态目录系统由jQuery快速生成。
为了配合bootstrap.css,还用到了bootstrap-dropdown.js
服务器:
此应用程序有两个版本:
一个运行在我的Apache上,但是因为我的网络是ADSL,所以ip会一直变化。基本上,它只用于我所谓的局域网中的自检。. 这个版本是纯Django的
另一个运行在Google App Engine上的地址是当我将Django配置为GAE时,我花了很多精力来设置框架。
有关详细信息,请参阅:将 Django 与 Google App Engine GAE 结合使用:l2Z 故事设置-步骤 1
后台:
主要语言是Python--不解释,认识Python后就没离开过
使用的主要模块有
1. BeautifulSoup.py 用于html解析--不解释
2. feedparser.py 是用来解析feed xml的——网上很多人说GAE不支持feedparser..给你答案了。. 能。. 我在这里花了很长时间才弄清楚发生了什么。. 简而言之,就是:能用!但是feedparser.py这个文件必须和app.yaml放在同一个目录下,不然网上有人会说feedparser无法导入。
数据库:
Google Datastore:下一步,这个程序会每30分钟唤醒一次,检查每个站点是否已经更新,并抓取更新后的文章并存储在Google的Datastore中
应用配置
按照谷歌的规则,配置文件app.yaml如下:
这里主要是定义一些静态目录——css和javascript的位置
复制代码代码如下:
应用程序:l2zstory
版本:1
运行时:python
api_version: 1
处理程序:
-网址:/图像
static_dir: l2zstory/templates/template2/images
-网址:/css
static_dir: l2zstory/templates/template2/css
-网址:/js
静态目录:l2zstory/templates/template2/js
-网址:/js
静态目录:l2zstory/templates/template2/js
-url: /.*
脚本:main.py
以上就是使用Django和GAE Python在后台爬取多个网站页面全文的详细内容。更多详情请关注html中文网站其他相关文章!