pyspider解析js爬取(采集)内容案例

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用 Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。在线示 例:http://demo.pyspider.org/ 在线手册:http://docs.pyspider.org   如有问题请加入QQ群讨论:217082390

  • 强大的python接口
  • 强大的WEBUI可视化代码编写,任务监控,项目管理和结果查看功能
  • MySQL, MongoDB, SQLite 作为后台数据库
  • Javascript 页面支持
  • 支持任务优先级队列,错误重复抓取,周期性重复抓取和过期抓取
  • 支持分布式部署

pyspider爬取功能很强大只是用的人少点所以案例比较少。笔者推荐想学习使用的朋友直接查看demo.pyspider.org上的案例,常用的功能上面都有案例。下面我们分享一下使用pyspider采集js解析后页面的案例。

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# vim: set et sw=4 ts=4 sts=4 ff=unix fenc=utf8:
# Created on 2014-10-31 13:05:52
   
import re
from libs.base_handler import *
   
class Handler(BaseHandler):
    ‘‘‘
    this is a sample handler
    ‘‘‘
    crawl_config = {
        "headers": {
            "User-Agent": "BaiDuSpider", #配置用户代理,模拟百度蜘蛛
        }
    }
       
    def on_start(self):
        self.crawl(‘http://www.jishubu.net/science/article/pii/S1568494612005741‘,
                   callback=self.detail_page)
           
    def index_page(self, response):
        for each in response.doc(‘a‘).items():
            if re.match(‘http://www.jishubu.net/science/article/pii/\w+$‘, each.attr.href):
                self.crawl(each.attr.href, callback=self.detail_page)
           
    @config(fetch_type="js")  #添加配置启用js解析功能
    def detail_page(self, response):
        self.index_page(response)
        self.crawl(response.doc(‘HTML>BODY>DIV#page-area>DIV#rightPane>DIV#rightOuter>DIV#rightInner>DIV.innerPadding>DIV#recommend_related_articles>OL#relArtList>LI>A.viewMoreArticles.cLink‘).attr.href, callback=self.index_page)
           
        return {
                "url": response.url,
                "title": response.doc(‘HTML>BODY>DIV#page-area>DIV#centerPane>DIV#centerContent>DIV#centerInner>DIV#frag_1>H1.svTitle‘).text(),
                "authors": [x.text() for x in response.doc(‘HTML>BODY>DIV#page-area>DIV#centerPane>DIV#centerContent>DIV#centerInner>DIV#frag_1>UL.authorGroup.noCollab>LI.smh5>A.authorName‘).items()],
                "abstract": response.doc(‘HTML>BODY>DIV#page-area>DIV#centerPane>DIV#centerContent>DIV#centerInner>DIV#frag_2>DIV.abstract.svAbstract>P‘).text(),
                "keywords": [x.text() for x in response.doc(‘HTML>BODY>DIV#page-area>DIV#centerPane>DIV#centerContent>DIV#centerInner>DIV#frag_2>UL.keyword>LI.svKeywords>SPAN‘).items()],
                }
时间: 2024-10-08 01:13:47

pyspider解析js爬取(采集)内容案例的相关文章

[实战演练]python3使用requests模块爬取页面内容

本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取响应状态码 5.案例演示 后记 1.安装pip 我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装requests模块使用pip,所以我这里第一步先安装pip. $ sudo apt install python-pip 安装成功,查看PIP版本: $ pip -V 2.

数据挖掘工具分析北京房价 (一) 数据爬取采集

一. 前言 房价永远是最让人头疼且激动的话题,尤其是在帝都,多少人一辈子都为了一套房子打拼.正好我也想用一个大家比较关心的话题作为案例,把目前我开发的这套软件进行一次完整的演练.从数据采集,到清洗,分析,和最终可视化和报告的呈现,实现一次完整的流程.一方面可以给大家切实的分享一些有用的信息,再者可以更好地了解这套软件的使用流程.  关于本工具的介绍,可参考数据挖掘平台介绍(综述)——平台简介. 自然的,文章分为四部分,本节是第一部分:数据爬取和采集. 二.  准备工作 俗话说巧妇难为无米之炊,没

Python模拟登录后爬取网站内容(小说)

最近有个好友让我帮忙爬取个小说,这个小说是前三十章直接可读,后面章节需要充值VIP可见.所以就需要利用VIP账户登录后,构造Cookie,再用Python的获取每章节的url,得到内容后再使用 PyQuery 解析内容. 注意:构造Cookie的过程中,需要你在 Chrome/Firefox 登录,然后自己在控制台查看 cookie,然后手动加入. 第一步:手动构造cookie,绕过登录 [我这里不是破解账户,想破解请出门左拐] 1 #version 2.7 2 3 #!/usr/bin/pyt

网页爬虫小记:两种方式的爬取网站内容

此处进行简单的分类,对于普通的网页爬取内容,如果没有登录界面可以直接使用Jsoup的API进行爬取: 如果网站是在打开目标也之前需要进行登录,此时需要先使用用户加密码实现登录获取Cookie然后进行登录: 本文就第二种方式进行分析: 方式一. httpClient中的PostMethod 或者 GetMethod 使用httpClient进行获得Cookie: import org.apache.commons.httpclient.Cookie; import org.apache.commo

python爬虫爬取微博评论案例详解

这篇文章主要介绍了python爬虫爬取微博评论,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 数据格式:{"name":评论人姓名,"comment_time":评论时间,"comment_info":评论内容,"comment_url":评论人的主页} 以上就是我们需要的信息. 具体操作流程: 我们首相将主页获取完成以后,我们就会发现,其中 的内容带有相

airtest爬取app内容

1.以知乎为例爬取数据: # -*- encoding=utf8 -*- from airtest.core.api import * from airtest.core.android.android import Android auto_setup(__file__) from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco=AndroidUiautomationPoco(force_restart

JS爬取高德地图地址信息(周边设施经纬度)

需求:给定进百万小区名称及对应城市信息,通过高德获取其周边设施信息(交通.医疗.教育.生活设施) 高德JS API 爬取灵感来自高德开发支持的JS API,当然你也可以直接调用高德提供的api服务获取地址信息,但是api服务是有次数限制.而JS API的调用并没有次数限制,经我的验证一个爬取节点控制在500毫秒的抓取频率是没有限制的. https://lbs.amap.com/api/javascript-api/example/poi-search/keywords-search 高德地址信息

使用HttpClient+Json解析器爬取数据并存入数据库

一.题目要求 说明:这里我只展示爬取数据的代码,将可视化结果与统计数据结合,实时显示当前最新数据只需将这篇博客代码和我那篇使用Echarts可视化数据库数据结合即可 二.思路 同学思路:我的大部分同学思路是使用HttpClient+Jsoup获取并解析目标页面的数据,然后调用Dao层中的方法将数据筛选并存入数据库中 我的思路:我直接使用了一个网上的一个最新疫情数据Json的目标网页,然后使用HttpClient获取该Json格式数据,然后使用Json解析器将 数据分离,然后调用Dao层中的方法将

【Python爬虫】之爬取页面内容、图片以及用selenium爬取

下面不做过多文字描述: 首先.安装必要的库 # 安装BeautifulSoup pip install beautifulsoup4 # 安装requests pip install requests 其次.上代码!!! ①重定向网站爬虫h4文字 import requests from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.by import By from