传递参数

示例一

#!/usr/bin/env python
# -*- encoding: utf- -*-
# vim: set et sw= ts= sts= ff=unix fenc=utf8:
# Created on -- :: import re
import json
from libs.pprint import pprint
from libs.base_handler import * class Handler(BaseHandler):
'''
this is a sample handler
'''
crawl_config = {
}
proxy = "" @every(, )
def on_start(self):
self.crawl(self.proxy+'http://www.douban.com/group/haixiuzu/discussion',
force_update=True, callback=self.index_page) @config(age=)
def index_page(self, response):
for each in response.doc('tr > .title > a').items():
self.crawl(self.proxy+each.attr.href, callback=self.detail_page) @config(age=***)
def detail_page(self, response):
assert response.url != "https://www.douban.com/"
return {
"url": response.url,
"title": response.doc("#content h1").text(),
"author": response.doc(".topic-content .from a").text(),
"author_url": response.doc("DIV.topic-doc>H3>SPAN.from>A").attr.href,
"imgs": [x.attr.src for x in response.doc('.topic-doc img').items()]
} def on_result(self, result):
if not result or not result['imgs']:
return
post_id = re.search("topic/(\d+)", self.response.url).group()
self.crawl("https://api.duoshuo.com/posts/import.json#"+post_id, method="POST",
data={
"short_name": "database",
"secret": "8e5a5be8873ad7e9a59147c3cfd10e73",
"posts[0][post_key]": post_id,
"posts[0][thread_key]": "haixiuzu",
"posts[0][message]": json.dumps(result).encode("base64").replace("\n", "")
}, callback=self.post_to_duoshuo) def post_to_duoshuo(self):
pass

示例二

#!/usr/bin/env python
# -*- encoding: utf- -*-
# Created on -- ::
# Project: prieto import re
from pyspider.libs.base_handler import * class Handler(BaseHandler): crawl_config = {
} @every(minutes= * )
def on_start(self):
for i in range():
self.crawl('data:,step%d' % i, callback=self.gen_url, save=i) @config(priority=)
def gen_url(self, respond):
for i in range(respond.save * , (respond.save + ) * ):
self.crawl("http://bbs.fobshanghai.com/viewthread.php?action=printable&tid=%d" % i, callback=self.index_page) @config(priority=)
def index_page(self, respond): # title = response.doc
hr_black = u'<hr noshade="noshade" size="2" width="100%" color="#808080"/>'
hr_blue = u'<br/><br/><br/><br/><hr noshade="noshade" size="2" width="100%" color="#698cc3"/>' #posts = respond.doc('body').html().split(hr_blue)[].split(hr_black)[:] if respond.doc('head').html().startswith('<meta'):
return {
"tid": respond.url.split('=')[-],
"url": respond.url,
"html": 'The specified thread does not exist.',
} return {
"tid": respond.url.split('=')[-],
"url": respond.url,
#"t_author": posts[].split('\n')[].split('<b>')[].strip(), # 用正则更好
"html": respond.doc.html(),
#"replies": [i for i in posts[:]]
}

pyspider示例代码六:传递参数的更多相关文章

  1. pyspider示例代码:解析JSON数据

    pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下比较经典的示例进行简单讲解,希望对新手有一些帮助. 示例说明: py ...

  2. pyspider示例代码三:用PyQuery解析页面数据

    本系列文章主要记录和讲解pyspider的示例代码,希望能抛砖引玉.pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一些 ...

  3. pyspider示例代码二:解析JSON数据

    本系列文章主要记录和讲解pyspider的示例代码,希望能抛砖引玉.pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下 ...

  4. pyspider示例代码一:利用phantomjs解决js问题

    本系列文章主要记录和讲解pyspider的示例代码,希望能抛砖引玉.pyspider示例代码官方网站是http://demo.pyspider.org/.上面的示例代码太多,无从下手.因此本人找出一下 ...

  5. 【openresty】向lua代码中传递参数

    前面介绍FormInputNginxModule模块时,明白了openresty如何获取post提交的数据. 然后,如果需要通过lua处理这些数据,需要把数据作为参数传递到lua中,lua获取了这些数 ...

  6. pyspider示例代码五:实现自动翻页功能

    实现自动翻页功能 示例代码一 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: v2ex fro ...

  7. pyspider示例代码七:自动登陆并获得PDF文件下载地址

    自动登陆并获得PDF文件下载地址 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: pdf_sp ...

  8. pyspider示例代码四:搜索引擎爬取

    搜索引擎爬取 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: __git_lab_fix fr ...

  9. 传递命令行参数示例代码 (C 和 Python)

    C语言 在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数. argc 为 int 类型, 表示传入命令行参数的个数 (argument count); argv ...

随机推荐

  1. 图片水平垂直居中(兼容IE6,IE7,firefox,opera,safari,其中图片可以是任何块元素)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Spring MVC 异常处理 - SimpleMappingExceptionResolver

    希望对一些异常统一处理,他将异常类名映射为视图名,即发生异常时使用对应的视图报告异常.

  3. 【转】UNITY之LUA加密

    来自:Lua加密 两种方式:一种用luac,一种用luajit luac加密: 1.lua本身可以使用luac将脚本编译为字节码(bytecode)从而实现加密,去官网下载Lua源代码包(http:/ ...

  4. com.google.gson的SerializedName解决实体类与关键字的重名

    使用google的gson包,解决实体类中字段与java关键字的重名: // 比如 当实体类中有switch关键字时,解决冲突如下 @SerializedName("switch" ...

  5. 抽象类(abstract class)

    package com.bjsxt.oop.abstractClass; //抽象类 public abstract class Animal { //因为父类的方法总是被重写 那就没写的必要了 但是 ...

  6. http://dl-ssl.google.com/android/eclipse/ 无法访问的解决办法

    很明显,国内网络和谐掉了google这个服务器,可以强制指向下Host ,以下是添加内容: 74.125.237.1 dl-ssl.google.com 具体操作方式: 点击桌面左下角开始菜单中的搜索 ...

  7. apply和call用法

    资料来源:http://blog.csdn.net/business122/article/details/8000676 Js apply方法详解 我在一开始看到javascript的函数apply ...

  8. Mysql InnoDB 数据更新 锁表

    一.数据表结构 1 2 3 4 5 6 7 8 9 10 CREATE TABLE `jx_attach` (   `attach_id` int(11) NOT NULL AUTO_INCREMEN ...

  9. java 注解 基本原理 编程实现

    摘要: java 1.5开始引入了注解和反射,正确的来说注解是反射的一部分,没有反射,注解无法正常使用,但离开注解,反射依旧可以使用,因此来说,反射的定义应该包含注解才合理一些. java 1.5开始 ...

  10. Java工具类_随机生成任意长度的字符串【密码、验证码】

    import java.util.Random; public class PasswordCreate { /** * 获得密码 * @param len 密码长度 * @return */ pub ...