feapder icon indicating copy to clipboard operation
feapder copied to clipboard

feapder-document

Open Boris-code opened this issue 4 years ago • 29 comments

https://boris.org.cn/feapder/#/

Description

Boris-code avatar Feb 21 '21 08:02 Boris-code

render=True时,webdirvier中的'chromedriver'是在哪里配置路径的

tang-yj-twz avatar Mar 23 '21 08:03 tang-yj-twz

render=True时,webdirvier中的'chromedriver'是在哪里配置路径的

配置文件里,https://boris.org.cn/feapder/#/usage/AirSpider?id=_12-%e6%b5%8f%e8%a7%88%e5%99%a8%e6%b8%b2%e6%9f%93%e4%b8%8b%e8%bd%bd

Boris-code avatar Mar 23 '21 08:03 Boris-code

浏览器不支持点击么?

Wu-Xiaonan avatar Apr 01 '21 07:04 Wu-Xiaonan

@Boris-code 有视频的教程吗?大神

Eason2818 avatar Apr 22 '21 03:04 Eason2818

浏览器不支持点击么?

支持

Boris-code avatar Apr 25 '21 02:04 Boris-code

@Boris-code 有视频的教程吗?大神

还没录制

Boris-code avatar Apr 25 '21 02:04 Boris-code

从头到位看一遍文档,感觉就是我要的爬虫,支持调度、去重、爬虫集合,能够requests抓取,能够动态渲染,能够断点续传,能够分布式处理,简直不要再好,而且学习难度貌似不高,文档写的很好,都是随着认知过程逐步加深,剩下的就是逐步实践了。 其中一直困扰我的连接补全功能,居然只是这里一个很小的功能,不错。 有几个问题,想了解下: 1、文档中写知识firefox的渲染,但代码里没有,不知道是还没完成还是什么情况,自己也还没来得及试,因为有个目标网站对chrome做了反爬,firefox可以爬到; 2、对于小型的爬取是否可以指挥sqlite,这样导入导出数据会比较方便; 3、可视化监控是个很好的功能,将来爬虫如果能做成web版的,以现在的框架感觉会非常吸引人 赞一个

jackdbj7 avatar May 18 '21 15:05 jackdbj7

从头到位看一遍文档,感觉就是我要的爬虫,支持调度、去重、爬虫集合,能够requests抓取,能够动态渲染,能够断点续传,能够分布式处理,简直不要再好,而且学习难度貌似不高,文档写的很好,都是随着认知过程逐步加深,剩下的就是逐步实践了。 其中一直困扰我的连接补全功能,居然只是这里一个很小的功能,不错。 有几个问题,想了解下: 1、文档中写知识firefox的渲染,但代码里没有,不知道是还没完成还是什么情况,自己也还没来得及试,因为有个目标网站对chrome做了反爬,firefox可以爬到; 2、对于小型的爬取是否可以指挥sqlite,这样导入导出数据会比较方便; 3、可视化监控是个很好的功能,将来爬虫如果能做成web版的,以现在的框架感觉会非常吸引人 赞一个

  1. driver_type
# 浏览器渲染
WEBDRIVER = dict(
    pool_size=1,  # 浏览器的数量
    load_images=True,  # 是否加载图片
    user_agent=None,  # 字符串 或 无参函数,返回值为user_agent
    proxy=None,  # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址
    headless=False,  # 是否为无头浏览器
    driver_type="CHROME",  # CHROME 、PHANTOMJS、FIREFOX
    timeout=30,  # 请求超时时间
    window_size=(1024, 800),  # 窗口大小
    executable_path=None,  # 浏览器路径,默认为默认路径
    render_time=0, # 渲染时长,即打开网页等待指定时间后再获取源码
)
  1. https://boris.org.cn/feapder/#/source_code/pipeline
  2. 爬虫管理平台正在做,近期就会推出

Boris-code avatar May 19 '21 05:05 Boris-code

是否支持加载js啊?

ghost avatar Sep 11 '21 04:09 ghost

我用了一下,我爬取的数据写入excel好像不好弄,有什么办法?

welstop avatar Oct 30 '21 04:10 welstop

这是我第二次夸这个框架了,这个框架真不错1

1295801348 avatar Dec 15 '21 08:12 1295801348

这是我第二次夸这个框架了,这个框架真不错1

哈哈 谢谢,第一次夸是在哪里

Boris-code avatar Dec 15 '21 08:12 Boris-code

我用了一下,我爬取的数据写入excel好像不好弄,有什么办法?

用pipeline

Boris-code avatar Dec 15 '21 08:12 Boris-code

是否支持加载js啊?

用浏览器渲染

Boris-code avatar Dec 15 '21 08:12 Boris-code

@Boris-code

这是我第二次夸这个框架了,这个框架真不错1

哈哈 谢谢,第一次夸是在哪里

是跟我的小伙伴的分享的时候

1295801348 avatar Dec 15 '21 09:12 1295801348

@Boris-code

这是我第二次夸这个框架了,这个框架真不错1

哈哈 谢谢,第一次夸是在哪里

是跟我的小伙伴的分享的时候

6666

Boris-code avatar Dec 15 '21 09:12 Boris-code

@Boris-code

@Boris-code

这是我第二次夸这个框架了,这个框架真不错1

哈哈 谢谢,第一次夸是在哪里

是跟我的小伙伴的分享的时候

6666

WEBDRIVER = dict( pool_size=1, # 浏览器的数量 load_images=False, # 是否加载图片 user_agent=None, # 字符串 或 无参函数,返回值为user_agent # user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', # 字符串 或 无参函数,返回值为user_agent proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址 headless=False, # 是否为无头浏览器 driver_type="CHROME", # CHROME、PHANTOMJS、FIREFOX timeout=30, # 请求超时时间 window_size=(1024, 800), # 窗口大小 # executable_path=None, # 浏览器路径,默认为默认路径 executable_path='C:\Program Files\Google\Chrome\Application/chrome.exe', # 浏览器路径,默认为默认路径 render_time=2, # 渲染时长,即打开网页等待指定时间后再获取源码 custom_argument=["--ignore-certificate-errors"], # 自定义浏览器渲染参数

def start_requests(self):
    yield feapder.Request("https://news.qq.com/", render=True)

请教一下,为什么我的浏览器启动了,但是不跳转页面

1295801348 avatar Dec 15 '21 09:12 1295801348

WEBDRIVER = dict( pool_size=1, # 浏览器的数量 load_images=False, # 是否加载图片 user_agent=None, # 字符串 或 无参函数,返回值为user_agent # user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', # 字符串 或 无参函数,返回值为user_agent proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址 headless=False, # 是否为无头浏览器 driver_type="CHROME", # CHROME、PHANTOMJS、FIREFOX timeout=30, # 请求超时时间 window_size=(1024, 800), # 窗口大小 # executable_path=None, # 浏览器路径,默认为默认路径 executable_path='C:\Program Files\Google\Chrome\Application/chrome.exe', # 浏览器路径,默认为默认路径 render_time=2, # 渲染时长,即打开网页等待指定时间后再获取源码 custom_argument=["--ignore-certificate-errors"], # 自定义浏览器渲染参数

def start_requests(self):
    yield feapder.Request("https://news.qq.com/", render=True)

请教一下,为什么我的浏览器启动了,但是不跳转页面

可能代理问题,也许你换成百度的地址就跳转了

Boris-code avatar Dec 15 '21 09:12 Boris-code

@Boris-code

WEBDRIVER = dict( pool_size=1, # 浏览器的数量 load_images=False, # 是否加载图片 user_agent=None, # 字符串 或 无参函数,返回值为user_agent # user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36', # 字符串 或 无参函数,返回值为user_agent proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址 headless=False, # 是否为无头浏览器 driver_type="CHROME", # CHROME、PHANTOMJS、FIREFOX timeout=30, # 请求超时时间 window_size=(1024, 800), # 窗口大小 # executable_path=None, # 浏览器路径,默认为默认路径 executable_path='C:\Program Files\Google\Chrome\Application/chrome.exe', # 浏览器路径,默认为默认路径 render_time=2, # 渲染时长,即打开网页等待指定时间后再获取源码 custom_argument=["--ignore-certificate-errors"], # 自定义浏览器渲染参数

def start_requests(self):
    yield feapder.Request("https://news.qq.com/", render=True)

请教一下,为什么我的浏览器启动了,但是不跳转页面

可能代理问题,也许你换成百度的地址就跳转了

依然没有跳转。。。你们可以排查测试一下有没有BUG,期待你们的更新!

1295801348 avatar Dec 15 '21 09:12 1295801348

依然没有跳转。。。你们可以排查测试一下有没有BUG,期待你们的更新!

我这没问题,测试代码

import feapder


class TestSpider(feapder.AirSpider):
    def start_requests(self):
        yield feapder.Request("https://news.qq.com/", render=True)

    def parse(self, request, response):
        pass


if __name__ == "__main__":
    TestSpider().start()

你排查下是不是你的selenium环境问题

Boris-code avatar Dec 15 '21 09:12 Boris-code

好的,多谢了

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2021年12月15日(星期三) 下午5:53 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [Boris-code/feapder] feapder-document (#6)

依然没有跳转。。。你们可以排查测试一下有没有BUG,期待你们的更新!

我这没问题,测试代码 import feapder class TestSpider(feapder.AirSpider): def start_requests(self): yield feapder.Request("https://news.qq.com/", render=True) def parse(self, request, response): pass if name == "main": TestSpider().start()
你排查下是不是你的selenium环境问题

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

1295801348 avatar Dec 15 '21 09:12 1295801348

请问,用pycharm没有代码提示 是啥情况,,,

q291974106 avatar Apr 15 '22 06:04 q291974106

请问,用pycharm没有代码提示 是啥情况,,,

python语言是弱语言类型,有时候是给不了提示的,因为pycharm也不确定类型

1295801348 avatar Apr 15 '22 06:04 1295801348

bloomfiler 有bug。 ScalableBloomFilter检查filter是否已满是每30分钟一次,而它调用的BloomFilter是每次add都会检查是否已满。这会导致如果ScalableBloomFilter中检查时间不满30分钟,但是bloomFilter就已经满了的情况下,add会抛出异常。ScalableBloomFilter和BloomFilter的检查机制建议同步。 另外不是很明白为什么BloomFilter满一半时就抛出异常,如果是为了在BloomFilter未满时ScalableBloomFilter可以提前申请新的BloomFilter,应该是BloomFilter满一半时,返回已满的状态,但是不要抛出异常,异常还是应该等待BloomFilter都满的时候再抛出。否则,每次刚到一半就抛异常,一方面浪费一半空间,另一方面就会出现外层的ScalableBloomFilter显示BloomFilter没满,但是一添加新的元素就报异常。

xiaoyueinfo avatar May 13 '22 12:05 xiaoyueinfo

SPIDER_SLEEP_TIME看源代码是在一批请求执行完成后才sleep的,并不能实现每个请求之间的时间间隔。不知道这是故意这样设计的吗?还是if setting.SPIDER_SLEEP_TIME:xxx逻辑不小心放到for request in requests:xxx外面去了?

xiaoyueinfo avatar May 14 '22 02:05 xiaoyueinfo

SPIDER_SLEEP_TIME看源代码是在一批请求执行完成后才sleep的,并不能实现每个请求之间的时间间隔。不知道这是故意这样设计的吗?还是if setting.SPIDER_SLEEP_TIME:xxx逻辑不小心放到for request in requests:xxx外面去了?

feapder==1.7.5 修复了这个逻辑,sleep每次请求后都生效

Boris-code avatar Jun 07 '22 04:06 Boris-code

bloomfiler 有bug。 ScalableBloomFilter检查filter是否已满是每30分钟一次,而它调用的BloomFilter是每次add都会检查是否已满。这会导致如果ScalableBloomFilter中检查时间不满30分钟,但是bloomFilter就已经满了的情况下,add会抛出异常。ScalableBloomFilter和BloomFilter的检查机制建议同步。 另外不是很明白为什么BloomFilter满一半时就抛出异常,如果是为了在BloomFilter未满时ScalableBloomFilter可以提前申请新的BloomFilter,应该是BloomFilter满一半时,返回已满的状态,但是不要抛出异常,异常还是应该等待BloomFilter都满的时候再抛出。否则,每次刚到一半就抛异常,一方面浪费一半空间,另一方面就会出现外层的ScalableBloomFilter显示BloomFilter没满,但是一添加新的元素就报异常。

感谢,feapder==1.7.6b1 已修复

Boris-code avatar Jun 07 '22 12:06 Boris-code

为什么不把 loggru的 success 加进去呢,这样就多一种日志颜色了

pgshow avatar Aug 16 '22 08:08 pgshow

请教一下 使用xpath解析数据时报错: init() got an unexpected keyword argument 'huge_tree', 使用正则可以正常提取数据,是啥原因 2022-10-07 23:30:09.340 | ERROR | logging:exception:line:1341 | init() got an unexpected keyword argument 'huge_tree' Traceback (most recent call last):

lxx-123456 avatar Oct 07 '22 15:10 lxx-123456